Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка синтаксиса (пропущен оператор)  [new]
ChaosMP
Member

Откуда: ---->
Сообщений: 672
MS SQL Server 2005, в SQL Server Business Intelligence Development Studio открываю проект (dtsx файл), созданный в мастере импорта-экспорта в SQL Server Management Studio. Вообще этот проект это загрузка из dbf в таблицу сервера, в компоненте Source-query пытаюсь изменить запрос, изначально запрос был:
select KD,ND,KND from MYDBF.dbf

и все работало, но если дописать таким образом:
select KD,ND,CASE WHEN [MYDBF.dbf].[KND] IS NOT NULL THEN [MYDBF.dbf].[KND] ELSE SUBSTRING([MYDBF.dbf].[ND],1,20) END  from [MYDBF.dbf]

То парсер запросов выдает ошибку:
ERROR [42000] [Microsoft][Драйвер ODBC dBase] Ошибка синтаксиса (пропущен оператор) в выражении запроса 'CASE WHEN [MYDBF.dbf].[KND] IS NOT NULL THEN [MYDBF.dbf].[KND] ELSE SUBSTRING([MYDBF.dbf].[ND],1,20) END'. (odbcjt32.dll)
В чем тут ошибка, может кто подскажет?
16 сен 13, 11:02    [14843252]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
select KD,ND,CASE WHEN [MYDBF].[dbf].[KND] IS NOT NULL THEN [MYDBF.dbf].[KND] ELSE SUBSTRING([MYDBF].[dbf].[ND],1,20) END  from [MYDBF].[dbf]
Ну и убедитесь что дбф подерживает иснтрукцию CASE
16 сен 13, 11:05    [14843274]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
plombir86
Member

Откуда:
Сообщений: 15
есть же функция ISNULL
16 сен 13, 11:05    [14843275]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ChaosMP
В чем тут ошибка, может кто подскажет?

В том, что функции TSQL используются для dBase
16 сен 13, 11:07    [14843285]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
ChaosMP
Member

Откуда: ---->
Сообщений: 672
Переписал через ISNULL, пример скопипастил из документации по SSIS:
select [KD],[ND],ISNULL([KND])? [ND]:[KND] from [MYDBF.dbf]

Выдает ошибку такую же:
ERROR [42000] [Microsoft][Драйвер ODBC dBase] Ошибка синтаксиса (пропущен оператор) в выражении запроса 'ISNULL([KND])Pa_RaM000 [ND]:[KND]'. (odbcjt32.dll)
16 сен 13, 11:13    [14843313]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ChaosMP
Переписал через ISNULL, пример скопипастил из документации по SSIS:

Лучше загляните в документацию "Драйвер ODBC dBase"
16 сен 13, 11:15    [14843318]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
ChaosMP
Member

Откуда: ---->
Сообщений: 672
Glory
ChaosMP
Переписал через ISNULL, пример скопипастил из документации по SSIS:

Лучше загляните в документацию "Драйвер ODBC dBase"

Можете ссылку дать или хотя бы намекнуть где читать?
16 сен 13, 11:27    [14843410]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ChaosMP
Можете ссылку дать или хотя бы намекнуть где читать?

В Гугле или на форуме по dBase, наверное.
Вы же пишите запрос для dBase, а не для MSSQL.
16 сен 13, 11:29    [14843422]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
ivanoffffffff
Member

Откуда:
Сообщений: 1
ChaosMP,
16 сен 13, 11:35    [14843492]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса (пропущен оператор)  [new]
ChaosMP
Member

Откуда: ---->
Сообщений: 672
Написал так:
select KD,ND,IIF(ISNULL(KND),Left(ND,20),KND) from MYDBF.dbf

Сработало.
16 сен 13, 11:53    [14843627]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить