powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с CASE!!!
3 сообщений из 3, страница 1 из 1
Проблема с CASE!!!
    #32066826
Uriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привожу пример:

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
Проблема с CASE!!!
    #32066833
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто нельзя выводить в одном столбце данные разных типов.
...
Рейтинг: 0 / 0
Проблема с CASE!!!
    #32066842
Uriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с CASE!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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