powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ISNULL(field,'01') и CASE field WHEN NULL THEN '01'
3 сообщений из 3, страница 1 из 1
ISNULL(field,'01') и CASE field WHEN NULL THEN '01'
    #32044094
Фотография Fedorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sql server 2000 sp2, win nt4 sp6

Почему так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create table #t (fname varchar( 20 ))
insert into #t select 'sasha'
insert into #t select NULL
insert into #t select 'masha'
insert into #t select NULL
insert into #t select 'dasha'


select 
fname,
isnull(fname,'01') as 'use_isnull',
case fname
when null then '01'
else '02'
end
as 'use_case'
from #t

drop table #t


Результат:

fname; use_isnull; use_case
sasha; sasha; 02
NULL; 01; 02
masha; masha; 02
NULL; 01; 02
dasha; dasha; 02
...
Рейтинг: 0 / 0
ISNULL(field,'01') и CASE field WHEN NULL THEN '01'
    #32044096
Dimos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что CASE проверяет fname=NULL, что ВСЕГДА false
(NULL=NULL) = false!!!
...
Рейтинг: 0 / 0
ISNULL(field,'01') и CASE field WHEN NULL THEN '01'
    #32044098
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select 
fname,
isnull(fname,'01') as 'use_isnull',
case 
when fname is null then '01'
else '02'
end
as 'use_case'
from #t
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ISNULL(field,'01') и CASE field WHEN NULL THEN '01'
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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