【发布时间】:2021-12-27 05:26:57
【问题描述】:
我一直在尝试使下面的代码工作:
SELECT [Cell Name]
FROM *******
WHERE
[Date of maturity year] = (CASE
WHEN [Inforce date month] = 12 THEN [Inforce date year] + 1
ELSE [Inforce date year]
END)
And [Date of maturity month] in (7,8,9)
这目前正在运行,但我想让第二个 where 条件动态化。我曾尝试使用 Case 语句,但它不起作用。
[Date of maturity month] in (CASE
WHEN [Inforce date month] = 12 THEN (1,2,3)
WHEN [Inforce date month] = 3 THEN (4,5,6)
WHEN [Inforce date month] = 6 THEN (7,8,9)
ELSE (10,11,12)
END)
谁能帮我解决这个问题。
【问题讨论】:
-
您使用的是什么 RDMBS?
-
T-SQL 中的
x IN ( 1, 2, 3 )运算符不是 数组类型,它只是( x = 1 OR x = 2 OR x = 3 )的语法简写。 T-SQL 不支持任何类型的数组类型(它确实有表值变量和参数,但不能用作列类型)。 -
我正在使用 SQL Server 管理工作室
-
SSMS 不是 RDMBS,它是 SQL Server 和 Azure SQL 的前端工具。请熟悉一些基本的数据库术语,以免让您周围的每个人感到困惑。
-
是的,我相信是 Microsoft SQL Server
标签: sql sql-server