Неверный синтаксис рядом с «cast» - PullRequest
0 голосов
/ 24 мая 2011

Не могу понять, почему я получаю ошибку

подстрока (приведена (СЛУЧАЙ, КОГДА l.assigned IS НЕ NULL THEN l.assigned ELSE l2.assigned END), 0, 17) как [TEST1]

ОБНОВЛЕНИЕ:

Исходная строка, которую я пытался настроить, заключается в следующем ... я хотел извлечь это преобразование, потому что я не хочу этот формат для даты и времени:

, остальная подстрока (convert (varchar, приведение Затем l.assigned ELSE l2.assigned END как datetime), 126), 0, 17) end) как varchar (20)) как [TEST1]

Также я попробовал это, что я забыл упомянуть

подстрока (приведена (СЛУЧАЙ, КОГДА l.assigned IS НЕ NULL THEN l.assigned ELSE l2.assigned как datetime END), 0, 17) как [TEST1]

Ошибка: неправильный синтаксис рядом с ключевым словом «как».

Ответы [ 4 ]

1 голос
/ 24 мая 2011

Вы получаете сообщение об ошибке, потому что вы не указали тип данных как подробно здесь . Синтаксис выглядит примерно так:

select cast('1/1/1911' as datetime)

Вы можете проще выразить свой запрос, используя isnull (или coalesce ) и left . Помните, что если вы не ищете определенный формат даты и времени, вы можете просто сделать следующее:

select left(isnull(l.assigned,l2.assigned),17) as [TEST1]
1 голос
/ 24 мая 2011

CAST нужен AS datatype, который, по-видимому, отсутствует.

например

SELECT SUBSTRING(CAST(
         CASE WHEN 'foo' IS NOT NULL THEN 'foo' ELSE 'FOO' END AS VARCHAR(100))
       , 0, 17) AS [TEST1]

Вы также можете использовать ISNULL или COALESCE, чтобы немного сократить код.

SELECT SUBSTRING(CAST(COALESCE(l.assigned,l2.assigned) AS VARCHAR(100)), 0, 17) 
                                                                       AS [TEST1]
0 голосов
/ 24 мая 2011

Вам нужно привести его к типу.

msdn: CAST and CONVERT

0 голосов
/ 24 мая 2011

К какому типу данных вы приводите? См. Ссылку:

http://msdn.microsoft.com/en-us/library/ms187928.aspx

Вы пропускаете предложение "as" и тип данных.

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