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

Откуда:
Сообщений: 41
У меня есть скрипт который выводит некоторые данные с разных таблиц и в дальнейшем на основе результата скрипта формируется таблица в FastReport через cross-tab. Сам скрипт передает дату,ФИО, еще несколько параметров и множество разных групп данных, которые в кросс-табе становятся столбцами, а ФИО соответственно строками и в ячейки между ними проставляются '+' - если данная группа данных имеется у данного человека.

Т.к. таблица строится через cross-tab, то столбцы с группами данных в которых ни у одного человека из списка не имеется никакого значения (null) скрываются.

Вопрос в том, что есть несколько столбцов в которых почему-то вместо null стоит пустота - '', из-за чего кросс-таб формирует такой столбец, но он остается пустым, а хотелось бы все же скрывать их.
24 май 17, 18:03    [20509011]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
Владислав Колосов
Member

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

nullif()
24 май 17, 18:05    [20509017]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
Romka-Fes
Member

Откуда: Kyiv
Сообщений: 456
kombala,

CASE WHEN SomeField='' THEN NULL ELSE SomeField END AS SomeField  

не?
24 май 17, 21:38    [20509435]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
kombala
Member

Откуда:
Сообщений: 41
Владислав Колосов
kombala,

nullif()


Спасибо большое, не знал про эту функцию, только учусь работать с SQL сейчас.
25 май 17, 11:53    [20510731]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
kombala
Member

Откуда:
Сообщений: 41
REPLACE(nullif(lab, '' ), lab, '+')

Теперь там, где есть значения ставится плюсик, а там где null или пустота остается null.
25 май 17, 11:54    [20510737]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
kombala
REPLACE(nullif(lab, '' ), lab, '+')

Теперь там, где есть значения ставится плюсик, а там где null или пустота остается null.

Да вы, батенька, затейник. На ухогорлопроктолога учились, да не сложилось - пошли в DBA?
Напишите уже
CASE WHEN LEN( lab ) > 0 THEN '+' END
25 май 17, 16:48    [20512145]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Руслан Дамирович
kombala
REPLACE(nullif(lab, '' ), lab, '+')

Теперь там, где есть значения ставится плюсик, а там где null или пустота остается null.

Да вы, батенька, затейник. На ухогорлопроктолога учились, да не сложилось - пошли в DBA?
Напишите уже
CASE WHEN LEN( lab ) > 0 THEN '+' END
А так не лучше?
CASE WHEN lab > '' THEN '+' END
SARGable, между прочим!
25 май 17, 18:58    [20512663]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
iap
CASE WHEN lab > '' THEN '+' END

SARGable, между прочим!

А что, можно было?!
25 май 17, 19:09    [20512686]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Руслан Дамирович
iap
CASE WHEN lab > '' THEN '+' END


SARGable, между прочим!

А что, можно было?!
???
Вы о чём?
25 май 17, 19:36    [20512741]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
iap
Руслан Дамирович
пропущено...

А что, можно было?!
???
Вы о чём?

Это цитата из анекдота про девочку-дауна и золотую рыбку...
25 май 17, 19:42    [20512753]     Ответить | Цитировать Сообщить модератору
 Re: Заменить пустую строку на Null  [new]
kombala
Member

Откуда:
Сообщений: 41
Руслан Дамирович
kombala
REPLACE(nullif(lab, '' ), lab, '+')

Теперь там, где есть значения ставится плюсик, а там где null или пустота остается null.

Да вы, батенька, затейник. На ухогорлопроктолога учились, да не сложилось - пошли в DBA?
Напишите уже
CASE WHEN LEN( lab ) > 0 THEN '+' END


Не столько затейник, просто с SQL работаю только первый месяц и многое бывает непонятно, а про некоторые возможности и вовсе еще не знаю, поэтому приходится изгаляться. Спасибо.
13 июн 17, 13:05    [20560136]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить