在 SQL 中生成表达式字符串以添加数据透视表中列的值
Generating expression string in SQL to add values of a column in pivot
我想获取此字符串以用于我的其他查询
@cols = 'ISNULL(myColumnName_value_1,0) + ISNULL(myColumnName_value_2,0) + ... + ISNULL(myColumnName_value_N,0)'
和 myColumnName_value_1
或 myColumnName_value_2
, ... 可以是任何东西。
我的查询是:
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ' + ISNULL(' + (c.myColumnName) +',0)'
FROM myTableName c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
print @cols
但我得不到我想要的
我想要的打印输出:
ISNULL(myColumnName_value_1,0) +
ISNULL(myColumnName_value_2,0) + ... +
ISNULL(myColumnName_value_N,0)
和...
因为我不知道名称或列数。
这是您修改后的查询。
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ' + ISNULL(' + QUOTENAME(c.myColumnName) +',0)'
FROM myTableName c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,2,1,'')
print @cols
我想获取此字符串以用于我的其他查询
@cols = 'ISNULL(myColumnName_value_1,0) + ISNULL(myColumnName_value_2,0) + ... + ISNULL(myColumnName_value_N,0)'
和 myColumnName_value_1
或 myColumnName_value_2
, ... 可以是任何东西。
我的查询是:
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ' + ISNULL(' + (c.myColumnName) +',0)'
FROM myTableName c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
print @cols
但我得不到我想要的
我想要的打印输出:
ISNULL(myColumnName_value_1,0) +
ISNULL(myColumnName_value_2,0) + ... +
ISNULL(myColumnName_value_N,0)
和...
因为我不知道名称或列数。
这是您修改后的查询。
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ' + ISNULL(' + QUOTENAME(c.myColumnName) +',0)'
FROM myTableName c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,2,1,'')
print @cols