【发布时间】:2019-09-02 13:49:26
【问题描述】:
每次我在 SQL 中使用 pivot 子句时,我都想知道为什么 IN 语句必须是静态的,我需要编写类似 'A', 'B' 的东西。
SELECT *
FROM
(
SELECT key_1, column_name, value_1
FROM table_1
)
PIVOT
(
MAX(column_name)
FOR column_name in('A', 'B')
)
是否有技术原因不允许写类似
的东西SELECT *
FROM
(
SELECT key_1, column_name, value_1
FROM table_1
)
PIVOT
(
MAX(column_name)
FOR column_name in(SELECT value_1 FROM table_2)
)
因为编写 IN 动态查询显然要舒服得多。
感谢您的回答!
【问题讨论】:
-
一般情况下,SQL 查询需要明确指定其列。如果您需要更大的灵活性,您可以使用动态 SQL。