MSSQL中字段相加无法实现(mssql字段相加不了)
?
在MS SQL中字段相加看似很简单,但当有特殊要求时,如要求只查询表中若干字段的总和,就会出现很多不同的情况,其中字段相加出现的问题便是其中之一。
首先,让我们看一下MS SQL中的查询语句的基本格式:
SELECT column_name SWITCH from table_name
我们可以使用简单的一行代码,来获取表中某一列的总和:
SELECT SUM(column_name) FROM table_name;
但是有时候,我们需要将多个字段的值相加,下面是一个例子:
SELECT SUM(column_name_1) + SUM(column_name_2) FROM table_name
但是,这种方法只能够求出各字段值的总和,而无法求出这些字段值的准确值。
如果我们要求只查询表中若干字段的总和,我们可以将多个字段的值放到一个类似数组的变量里,然后使用Aggregate函数完成字段的相加查询:
DECLARE @string VARCHAR(MAX)SET @string = ‘column_name_1’+’,’+’column_name_2’SELECT SUM(t.column_name) AS Sum FROM table_name AS t CROSS APPLY STRING_SPLIT(@string , ‘,’) S WHERE t.column_name = s.value
最后通过使用游标或者遍历方法,我们可以根据表中特定字段的值,将其他字段的数据汇总到一个单一字段中,这样就可以实现将若干字段值相加查询。
另一种常用的方法是使用 Common Table Expression (CTE),使用 CTE 可以在查询中添加一个中间表,然后调用 CTE 中的数据来计算求和,例如:
WITH cte AS (SELECT column_name_1, column_name_2 FROM table_name) SELECT SUM (column_name_1 + column_name_2′) FROM cte
以上是关于MSSQL中字段相加无法实现的情况,其实如果结合上面介绍的几种方法,也可以很容易地实现多个字段值之和的查询。