SQL語法卻仍然是我學習。我得到了這個代碼片段下面指出的錯誤。TSQL CASE LTRIM(RTRIM NULL
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.
我在做什麼錯了?我如何保留聲明的要點,而不是得到這個瘋狂的錯誤?
或CAST(NULL AS VARCHAR(10)); – a1ex07 2010-08-03 17:40:58
@ a1ex07 - Ack ...陷入了Sybase的心態 – DVK 2010-08-03 17:42:21
啊,好吧,我明白了。我嘗試了一些其他的東西,發現它的工作原理如下:CASE LTRIM(RTRIM(cLehmanNo))=''那麼當cLehmanNo不爲NULL時,則爲NULL然後替換(cLehmanNo,SUBSTRING(cLehmanNo,PATINDEX('%[^ a-zA -Z0-9''''']%',cLehmanNo),1),'')END作爲LOAN_NUMBER(必須在=符號後移除一個額外的空格,然後我在代碼的後面找到了我必須在END之前添加THEN REPLACE(Null,'',''),如下所示:,CASE WHEN LTRIM(RTRIM(dtMicIssue))=''那麼NULL當cMICNumber不爲NULL,則REPLACE(NULL,'' '')END MIP_CERTIFICATION_DATE Thx! – JMS49 2010-08-03 18:01:43