gpt4 book ai didi

sql - TSQL CASE LTRIM (RTRIM NULL

转载 作者:行者123 更新时间:2023-12-04 06:48:55 25 4
gpt4 key购买 nike

SQL 语法仍然是我正在学习的东西。我收到此代码片段下方指出的错误。

SELECT
CASE WHEN LTRIM(RTRIM(cLehmanNo)) =' ' THEN NULL
WHEN cLehmanNo IS NOT NULL THEN REPLACE ( cLehmanNo,SUBSTRING (cLehmanNo,PATINDEX( '%[^a-zA-Z0-9 '''''']%',cLehmanNo),1), ' ' )
END asLOAN_NUMBER
,CASE WHEN LTRIM(RTRIM(cMERS)) =' ' THEN NULL
WHEN cMERS IS NOT NULL THEN REPLACE ( cMERS,SUBSTRING (cMERS,PATINDEX( '%[^a-zA-Z0-9 '''''']%',cMERS),1), ' ' )
END asMERS_ID

还有 100 多个相同的。
Msg 8133, Level 16, State 1, Line 1
None of the result expressions in a CASE specification can be NULL.

我究竟做错了什么?我如何保持声明的要点而不是出现这个疯狂的错误?

最佳答案

当它无法推断类型时会发生这种情况。

例如

SELECT CASE WHEN 1 = 2 THEN NULL ELSE NULL END 

但这有效
SELECT CASE WHEN 1 = 2 THEN NULL ELSE replace(NULL,'','') END

所以我怀疑错误来自您向我们展示的代码(您正在使用字符串函数,以下快速测试表明它将假定为 varchar(8000) )
SELECT CASE WHEN 1 = 2 THEN NULL ELSE REPLACE(NULL,'','') END a
INTO t /*Creates column of datatype varchar(8000)*/

关于sql - TSQL CASE LTRIM (RTRIM NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399009/

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