СЛУЧАЙ TSQL КОГДА СИНТАКСИС - ЗАМЕНА ИСПОЛЬЗОВАНИЯ - PullRequest
2 голосов
/ 03 августа 2010

Это действительно относится к предыдущему вопросу, TSQL 2008, ИСПОЛЬЗУЮЩЕМ LTRIM (RTRIM и все еще имеют пробелы

Я нахожусь в момент написания очень длинного оператора SELECT с использованием оператора OMG PONIES дляудалить NON NULL невидимые символы

 (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

Как только я проверяю синтаксис, я получаю эту ошибку, указывающую на первый оператор Case после SELECT:

Сообщение 156, уровень 15, состояние 1, строка 143 Неверный синтаксис рядом с ключевым словом "as".

Может ли кто-нибудь помочь мне понять, что мне не хватает?

Ответы [ 2 ]

5 голосов
/ 03 августа 2010

Вы упускаете КОНЕЦ в своих заявлениях по делу.Ты выглядишь так, как будто ты мог бы сделать это и с ELSE там, хотя они не являются обязательными - если они не указаны и ничего не совпадают, ты получишь NULL.

CASE
 WHEN something then value1
 WHEN somethingelse then value2
 ELSE value3
END
2 голосов
/ 03 августа 2010

Вам не хватает некоторых правильных друзей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...