gpt4 book ai didi

sql-server - 存储过程中的 SQL case 语句

转载 作者:行者123 更新时间:2023-12-04 00:03:39 24 4
gpt4 key购买 nike

我有一个包含 CASE 语句的 SQL Server 存储过程。但是,如果多个条件为真,我需要附加这些值。

因此,如果特定记录具有无效日期超出里程数,我希望这两个值都显示在NotArchiveableReason 列。

我将如何实现?

, CASE 
WHEN DateOfLoss < PolicyStartDate THEN 'Invalid Date'
WHEN MilesDriven > TotalMilesAllowed THEN 'Mileage exceeded'
WHEN LossStatusCode != 'R' THEN 'Status code is Review'
Else 'Unknown issue'
END
As NotArchiveableReason

最佳答案

如果您想要连接诸如无效日期,超出里程之类的结果,那么您可能正在寻找类似这样的结果。

ISNULL(
NULLIF(
STUFF(
CASE WHEN DateOfLoss < PolicyStartDate THEN ', Invalid Date' ELSE '' END
+ CASE WHEN MilesDriven > TotalMilesAllowed THEN ', Mileage exceeded' ELSE '' END
+ CASE WHEN LossStatusCode != 'R' THEN ', Status code is Review' ELSE '' END
, 1, 2, '')
,'')
, 'Unknown issue')
As NotArchiveableReason

STUFF() 删除了前导逗号。 NULLIF() 将空字符串转换为 null。当 CASE 语句条件都不满足时,ISNULL() 将填充“未知问题”。

关于sql-server - 存储过程中的 SQL case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com