Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с CASE!!! / 3 сообщений из 3, страница 1 из 1
12.11.2002, 11:37:20
    #32066826
Uriy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CASE!!!
Привожу пример:

create table #t1 (datat1 nchar(2) null)

insert into #t1 (datat1) values ('3 ')
insert into #t1 (datat1) values ('5 ')
insert into #t1 (datat1) values ('E ')

select (case when(isnumeric(#t1.datat1)=1) then (cast(#t1.datat1 as tinyint) * 2) else #t1.datat1 end)
from #t1

drop table #t1


Проблема в следующем - первые две записи выбираются без проблем,
но при выборке третьей (содержащей 'Е ') получаю:
Server: Msg 245, Level 16, State 1, Line 7
Syntax error converting the nvarchar value 'E ' to a column of data type int.

Судя по сообщению функция CASE пытается привести поле #t1.datat1 к типу int хотя я в условии else указываю просто вывести содержимое поля без всяких преобразований. Если кто-то может объясните пожалуйста в чем проблема или расскажите как это обойти. Заранее спасибо!!!
...
Рейтинг: 0 / 0
12.11.2002, 11:46:39
    #32066833
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CASE!!!
Просто нельзя выводить в одном столбце данные разных типов.
...
Рейтинг: 0 / 0
12.11.2002, 11:52:26
    #32066842
Uriy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с CASE!!!
2> VVG_
Немного изменил все заработало, ты был прав. Спасибо!!!

create table #t1 (datat1 nchar(2) null)

insert into #t1 (datat1) values ('3 ')
insert into #t1 (datat1) values ('5 ')
insert into #t1 (datat1) values ('E ')

select (case when(isnumeric(#t1.datat1)=1) then cast((cast(#t1.datat1 as tinyint) * 2)as nchar(2)) else #t1.datat1 end)
from #t1

drop table #t1
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с CASE!!! / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]