JMS*_*S49 2 sql t-sql sql-server string
这实际上适用于先前的问题,TSQL 2008使用LTRIM(RTRIM和Still Have Spaces
我正在使用OMG PONIES语句编写一个非常冗长的SELECT语句来删除NON NULL非可见字符
(WHEN PropStreetAddr is NOT NULL THEN
(SELECT LTRIM(RTRIM((REPLACE(PropStreetAddr,
SUBSTRING(PropStreetAddr,
PATINDEX('%[^a-zA-Z0-9 '''''']%',
PropStreetAddr),
1), '') AS PropStreetAddr)
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT
CASE WHEN LOAN_NUMBER IS NOT NULL THEN
REPLACE( LOAN_NUMBER,SUBSTRING (LOAN_NUMBER,PATINDEX( ' %[^a-zA-Z0-9 '''''']% ' , ' ' ) as LOAN_NUMBER.
,CASE WHEN MERS_ID IS NOT NULL THEN
REPLACE( MERS_ID,SUBSTRING (MERS_ID,PATINDEX( ' %[^a-zA-Z0-9 '''''']% ' , ' ' ) as MERS_ID
...127 more lines of similar statements
Run Code Online (Sandbox Code Playgroud)
一旦我检查语法,我收到此错误指向SELECT后的第一个Case语句:
消息156,级别15,状态1,行143关键字'as'附近的语法不正确.
有人能帮我理解我错过的东西吗?
您错过了案例陈述中的END.你看起来也可以在那里使用ELSE,尽管这些并不是强制性的 - 如果不使用也没有匹配,那么你将得到一个NULL.
CASE
WHEN something then value1
WHEN somethingelse then value2
ELSE value3
END
Run Code Online (Sandbox Code Playgroud)