TSQL情况下的THEN语法-使用替换

TSQL情况下的THEN语法-使用替换,sql,sql-server,tsql,string,Sql,Sql Server,Tsql,String,这实际上适用于前面的一个问题 我正在编写一个非常长的SELECT语句,使用OMG PONIES语句删除非空的不可见字符 (WHEN PropStreetAddr is NOT NULL THEN (SELECT LTRIM(RTRIM((REPLACE(PropStreetAddr, SUBSTRING(PropStreetAddr,

这实际上适用于前面的一个问题

我正在编写一个非常长的SELECT语句,使用OMG PONIES语句删除非空的不可见字符

 (WHEN PropStreetAddr is NOT NULL THEN
    (SELECT LTRIM(RTRIM((REPLACE(PropStreetAddr, 
                                 SUBSTRING(PropStreetAddr, 
                                           PATINDEX('%[^a-zA-Z0-9 '''''']%', 
                                           PropStreetAddr), 
                                 1), '') AS PropStreetAddr)
查询:

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
检查语法后,我立即收到指向SELECT后第一个Case语句的错误:

消息156,第15级,状态1,第143行 关键字“as”附近的语法不正确


有人能帮我理解我遗漏了什么吗?

你错过了案件陈述的结尾。您看起来也可以在那里使用ELSE,尽管这些不是强制性的-如果不使用,并且没有匹配项,那么您将得到一个空值

CASE
 WHEN something then value1
 WHEN somethingelse then value2
 ELSE value3
END

你错过了一些正确的帕伦

+1…和替换(子字符串)(PATINDEX)(目前没有逻辑意义…天哪,我看这段代码看得太久了!我感谢你的评论和提醒..下面是我需要解决的问题..非常抱歉,我错过了这一点..选择LOAN_NUMBER不为NULL的情况,然后替换(LOAN_NUMBER,子字符串(贷款编号,PATINDEX('%[^a-zA-Z0-9']%,贷款编号),1),''以贷款编号结尾,依此类推