2012-03-05 5 views
1

Как можно назвать?Можно ли объявить оператор CASE в Replace (SQL Server)?

Так как следующее:

SELECT 
REPLACE ('Hello', 'e', '!') 
REPLACE(
    CASE 
     WHEN 1 = 1 THEN 'Hello' 
     ELSE 'Bye' 
    END AS MyStr, 'e', '!' 
    ) 

Потому что он возвращает:

Msg 156, Level 15, State 1, Line 4 Неправильный синтаксис около ключевого слова 'ДЕЛУ'.

+1

... Вы попробовали? –

+0

@AdamRobinson я, не работает. Поэтому я задаюсь вопросом, не сделал ли я что-то не так в моем синтаксисе lol –

+2

«Не работает» может означать много чего. Я вижу, что вы отредактировали свой вопрос, чтобы включить сообщение об ошибке; благодаря! Пожалуйста, не забудьте предоставить такую ​​информацию в будущих вопросах. Чем меньше вы заставляете других людей угадывать проблему (это дало ошибку? Это дало вам неожиданные результаты? У вас загорелся компьютер?), Тем более вероятно, что вы получите хороший ответ. –

ответ

4

У вас есть синтаксические ошибки в вашем запросе, но, кроме того, все выглядит правильно. Это должно быть

SELECT 
REPLACE ('Hello', 'e', '!'), -- missing comma in the original query 
REPLACE(
    CASE 
     WHEN 1 = 1 THEN 'Hello' 
     ELSE 'Bye' 
    END, 'e', '!' -- removed the AS clause 
    ) 
+0

как всегда так быстро! – Taryn

+0

Ahhhhhhh вот почему .... Большое спасибо –

+0

@KingChan, пожалуйста, уделите минутку, чтобы принять ответ. – Xint0

Смежные вопросы