gpt4 book ai didi

sql - 在 SQL Case 语句中正确使用嵌套 Case 语句

转载 作者:行者123 更新时间:2023-12-02 18:33:14 27 4
gpt4 key购买 nike

下午好,

我目前正在处理一些 postgresql 代码并将其转换为 sql(如果它非常简单),但我遇到了一个带有数组的 case 语句,并且无法找出正确的语法,因为我已经以前从未见过以这种方式使用 case 语句。

我已经做了一个简单的例子来说明我正在尝试做的事情,但它仍然抛出语法错误:

Select field3, field 4, 
Case
When field in (1, 3, 7) then 1
When field in (2, 4, 6) then 2
When field in (5, 9) then 3
When field is null or ' ' then 4
Else
Case
When field2 = x then 1
When field2 = y then 2
Else End
End as fieldname

这是原始代码,因此您可以看到我正在编辑它的内容。 case 语句(据我所知,正如我之前提到的,我从未以这种方式使用过 case)使用 2 个字段来获得所需的结果。请注意,我最初并没有编写此内容,只是将其从 postgresql 移植到 t-sql。

CASE 
WHEN rank IN (1,7,9) THEN '1'
WHEN rank IN (2,5,10) THEN '2'
WHEN rank IN (3,6) THEN '3'
WHEN rank IN (4,8) THEN '4'
WHEN tier IS NULL OR tier = '' THEN 'N/A' ELSE
CASE WHEN tier = 'HE' THEN '3'
WHEN tier = 'ME' THEN '2'
WHEN tier = 'LE' THEN '1' END
END AS tier

在处理了下面的答案后(其中一个是我的拼写错误),我现在在“Else End”子句上遇到语法错误。

我修改了问题以说明这是一个关于嵌套 case 语句而不是数组的问题谢谢

最佳答案

Case
When field in (1, 3, 7) then 1
When field in (2, 4, 6) then 2
When field in (5, 9) then 3
When field is null or ' ' then Case
When field2 = x then 1
When field2 = y then 2
End --inner case
Else null
End as fieldname
<小时/>

am I misusing the term 'array' in this example?

是的。

关于sql - 在 SQL Case 语句中正确使用嵌套 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396533/

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