在案例语句 SQL 中使用数组
Posted
技术标签:
【中文标题】在案例语句 SQL 中使用数组【英文标题】:Using Array in Case Statement SQL 【发布时间】: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
【参考方案1】:
[Date of maturity month] - [Inforce date month] % 12 between 1 and 3
【讨论】:
这很有魅力。我也在 Excel 上尝试了各种输入的条件,并且它在每次测试运行下都返回正确的输出。谢谢!! 如此强大,如此美丽的答案。模数我们的伟大之路!以上是关于在案例语句 SQL 中使用数组的主要内容,如果未能解决你的问题,请参考以下文章
将 java.sql.Array 创建为整数数组以用于准备好的语句 [重复]
如何在 Jquery 中搜索数组,如 SQL LIKE %value% 语句