【发布时间】:2019-10-11 06:36:48
【问题描述】:
我正在尝试从表中选择多个列。一个是包含“MAY_A”(当前月份实际值)的列。月份分为多个列。
表格如下
ORG ORG2 APR_A_CNT MAY_A_CNT ............
--------------------------------------------------------------
a def 4 6
b def 6 8
. . . .
. . . .
. . . .
我尝试过的如下。我从架构中选择了所需的列名 (MAY_A)。只是似乎无法让 SELECT 将其作为我想要的表中的列名。
SELECT ORG, ORG2, (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'SUMMARY'
AND COLUMN_NAME LIKE '%' + UPPER(CONVERT(char(3), GETDATE(),0)) + '_A%')
FROM [DB].[dbo].[SUMMARY]
我目前有输出:
ORG ORG2 (no column name)
--------------------------------
a def NULL
b def NULL
. . .
. . .
. . .
我想要的是:
ORG ORG2 MAY_A_CNT
--------------------------
a def 6
b def 8
. . .
. . .
. . .
【问题讨论】:
-
这里需要动态SQL...,构建sql字符串,然后执行
-
我已经建立了字符串。在我的代码中实现它时遇到问题。
-
test sub-select也,看起来这也没有返回数据
-
我不知道该怎么做。任何指导将不胜感激。
-
这就是为什么像这样的表格设计是个坏主意。动态信息应该在单元格内容中,而不是表格或列名。
标签: sql sql-server select subquery