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

Откуда:
Сообщений: 17
По запросу курсора выводятся все значения со значениями не nul. В связи с этим в строку результирующего набора значение поля - null автоматически заполняется.
На рис. видно, что значение 51 заняло пустое.Из-за этого все значения съехали в неправильном порядке на строку ниже.

Подскажите,пожалуйста,как реализовать в курсоре возможность выводить значения - null, как ноль.
Пробовала проверять на наличие записей с null, но все равно результат выводится не так.

Далее привела код курсора

BEGIN
declare cur1 cursor for
select isnull(job.INC_NUMBER,' '), isnull(count(pcb.rid),0) from [12TON_PCBS] pcb
join LAYOUT_CODING_INFO job on substring(pcb.BARCODE,5,8)=job.INC_NUMBER and job.INC_NUMBER<>77777777
where pcb.STR_DRYING_DATE is not NULL and
pcb.REG_SMT_DATE is not NULL and
pcb.BTM_READY_DATE is not NULL and
pcb.TOP_READY_DATE is not NULL and
(pcb.BAD_STATUS = 0 or pcb.BAD_STATUS = 2) and
WANTED != 1 and
REJECTED is NULL
group by job.INC_NUMBER order by job.INC_NUMBER

open cur1
fetch next from cur1 into @INC_NUMBER4, @cnt4
if (@@ROWCOUNT = 0 or @@ROWCOUNT is null)
begin
set @INC_NUMBER4=COALESCE(@INC_NUMBER4,0)
set @cnt4=COALESCE(@cnt4,0)
end
begin
WHILE @@FETCH_STATUS = 0
begin
fetch next from cur1 into @INC_NUMBER4, @cnt4
if (@@ROWCOUNT = 0 or @@ROWCOUNT is null)
begin
set @INC_NUMBER4=COALESCE(@INC_NUMBER4,0)
set @cnt4=COALESCE(@cnt4,0)
end
END
CLOSE cur
DEALLOCATE cur1
END

К сообщению приложен файл. Размер - 76Kb
16 мар 16, 18:20    [18939951]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
Glory
Member

Откуда:
Сообщений: 104751
LVeta
Подскажите,пожалуйста,как реализовать в курсоре возможность выводить значения - null, как ноль.

Ваш курсор ничего не выводит. Потому что fetch у вас заносит значения полей в переменные.

Что делает в вашем скрипте if (@@ROWCOUNT = 0 or @@ROWCOUNT is null) вообще непонятно.
16 мар 16, 18:25    [18939979]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
_djХомяГ
Guest
Плюс у вас очевидно все можно разрулить селектом которым описан курсор (т е курсор не нужен)
16 мар 16, 18:28    [18939994]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
LVeta
Member

Откуда:
Сообщений: 17
Glory,

а как я тогда должна написать,если нужно проверить наличия null строчек и дальнейшей их замене. у меня сейчас вот так
if (@@ROWCOUNT = 0 or @@ROWCOUNT is null)
begin
set @INC_NUMBER4=COALESCE(@INC_NUMBER4,111111)
set @cnt4=COALESCE(@cnt4,0)
end
16 мар 16, 18:48    [18940093]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
LVeta
Member

Откуда:
Сообщений: 17
_djХомяГ,

я вам показала только часть процедуры.у меня таких кусков 5 штук. Вывести обычным запросом у меня не получиллось
16 мар 16, 18:50    [18940104]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
Glory
Member

Откуда:
Сообщений: 104751
LVeta
а как я тогда должна написать,если нужно проверить наличия null строчек и дальнейшей их замене. у

С чего вы взяли, что @@ROWCOUNT что-то проверяет для курсора ?
16 мар 16, 18:50    [18940108]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
LVeta
Glory,

а как я тогда должна написать,если нужно проверить наличия null строчек и дальнейшей их замене. у меня сейчас вот так
if (@@ROWCOUNT = 0 or @@ROWCOUNT is null)
begin
set @INC_NUMBER4=COALESCE(@INC_NUMBER4,111111)
set @cnt4=COALESCE(@cnt4,0)
end

каких таких null строчек? @@ROWCOUNT вообще никогда NULL не бывает
16 мар 16, 18:51    [18940113]     Ответить | Цитировать Сообщить модератору
 Re: вывод null значений по запросу  [new]
Glory
Member

Откуда:
Сообщений: 104751
LVeta
Вывести обычным запросом у меня не получиллось

Тогда поступите так же, как для предыдущей вашей теме - начните отладку ващего скрипта.
16 мар 16, 18:51    [18940116]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить