|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Добрый день. В табличке TST DDL Код: sql 1. 2. 3. 4. 5. 6.
данные: IDG0G1G21АБВ23<null>4<null><null><null>5АБВ6А<null><null>7<null>БВ Нужно выбрать все строки, в которых значения полей g0, g1 и g2 были пустыми. "Пустые" - это либо null, либо "пустая строка" (''). Вот так работает: Код: sql 1. 2. 3. 4. 5.
вывод: IDG0G1G223<null>4<null><null><null> Вопрос: а нет ли для строк в FB чего-либо более компактного, чем G0 is null or G0 = '' , какой-нибудь конструкции IsEmptySTR... - ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 17:12 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
NULLIF(G0, '') IS NULL Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 17:29 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
coalesce(G0,'') = '' ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 17:41 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятница> Вопрос: а нет ли для строк в FB чего-либо более компактного Есть, и NULLIF, и коалеска, но они не индексируются. Так что лучше длиньше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 17:50 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Как бы не особо-то и компактнее, "прозрачнее": Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Гаджимурадов Рустам... Есть, и NULLIF, и коалеска, но они не индексируются. Так что лучше длиньше. ОК ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 17:58 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Опять трололо... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:04 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
IMHO, если у поля отсутствует смысл в NULL - делать поле изначально NOT NULL и тогда никаких таких извращений не понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:08 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Немного не по теме. При оформлении запроса писать and удобнее в начале а не в конце. Что бы любую строку в where можно было закомментарить - удобнее когда каждая строка начинается с and . Но первая строка не может так начинаться, поэтому я пишу вот так: Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:13 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
fraksIMHO, если у поля отсутствует смысл в NULL - делать поле изначально NOT NULL и тогда никаких таких извращений не понадобится. Это да. Но есть существующие системы. ... PS: Интересно, почему для строк в СУБД не сделали пустое значение равным NULL. Именно для строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:13 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятницаPS: Интересно, почему для строк в СУБД не сделали пустое значение равным NULL. Именно для строк. Потому что NULL и пустая строка - это разные вещи и для строк тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:15 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
fraksНемного не по теме. При оформлении запроса писать and удобнее в начале а не в конце. Что бы любую строку в where можно было закомментарить - удобнее когда каждая строка начинается с and . ... И насчет запятых - то же самое. Но форматтер текста в IBExpert думает иначе, к сожалению. Возможно, его можно переучить, да вот не знаю как. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:16 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
22.11.2017 18:13, Скоро пятница пишет: > Интересно, почему для строк в СУБД не сделали пустое значение равным NULL. Именно для строк. переходи на оракел. там это сделали. изначально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:20 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятницаfraksНемного не по теме. При оформлении запроса писать and удобнее в начале а не в конце. Что бы любую строку в where можно было закомментарить - удобнее когда каждая строка начинается с and . ... И насчет запятых - то же самое. Но форматтер текста в IBExpert думает иначе, к сожалению. Ни разу не пользовался форматтером :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:24 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятница, если вы считаете что пустая строка и значение null для вашей таблицы одинаковы - проведите замену постого значения на null и потом будет вам компактно и красиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:27 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятницаВопрос: а нет ли для строк в FB чего-либо более компактного, чем G0 is null or G0 = '' , какой-нибудь конструкции IsEmptySTR... - ? Готовых нет. Но в Firebird 3 появилась возможность делать хранимые функции. Типа как хранимые процедуры но вызывать можно как функции. И думаю что твоя "IsEmptySTR" будет состоять буквально из одной строки. Правда с индексами в таких условиях будет все плохо... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:32 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
akrush> проведите замену постого значения на null и потом будет вам компактно и красиво. Это ж додуматься надо, потроллить ведь нечем будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:33 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
akrushСкоро пятница, если вы считаете что пустая строка и значение null для вашей таблицы одинаковы - проведите замену постого значения на null и потом будет вам компактно и красиво. Кстати да. Если нельзя добавить NOT NULL на поле - можно сделать триггер заменяющий NULL на пустую строку. Такое наверняка проканает и в существующих системах. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:34 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Скоро пятницаКак бы не особо-то и компактнее, "прозрачнее": Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Хочется компактнее тогда вот так Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 18:48 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
m7mХочется компактнее тогда вот такНет ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 19:34 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Шавлюк Евгенийm7mХочется компактнее тогда вот такНет Ну да, таки ты прав ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2017, 19:38 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Мимопроходящий22.11.2017 18:13, Скоро пятница пишет: > Интересно, почему для строк в СУБД не сделали пустое значение равным NULL. Именно для строк. переходи на оракел. там это сделали. изначально. Наверное, какие-то внутренние причины для разделения у разработчиков FB были, но с прикладной т.зр. - имхо, от разделения в строках (varchar) null и '' - один гемор. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 09:17 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
чччДНаверное, какие-то внутренние причины для разделения у разработчиков FB были у разработчиков ФБ причин не было. А у разработчиков ИБ были - стандарт sql и вообще правила РСУБД. Скорее, тут надо говорить про причины у разработчиков Оракла. https://habrahabr.ru/post/127327/ "Если последовать завету классика и посмотреть в корень, то причину эквивалентности пуcтой строки и NULLа можно найти в формате хранения varchar`ов и NULLов внутри блоков данных. Oracle хранит строки таблицы в структуре, состоящей из заголовка, за которым следуют столбцы данных. Каждый столбец представлен двумя полями: длина данных в столбце (1 или 3 байта) и, собственно, сами данные. Если varchar2 имеет нулевую длину, то в поле с данными писать нечего, оно не занимает ни байта, а в поле с длиной записывается специальное значение 0xFF, обозначающее отсутствие данных. NULL представлен точно так же: поле с данными отсутствует, а в поле с длиной записывается 0xFF. Разработчики Оракла могли бы, конечно, разделить эти два состояния, но так уж издревле у них повелосью" p.s. насколько я помню, даже у Парадокса в 1991-1993 годах было понятие "blank", т.е. null, для всех типов данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 09:26 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
чччДНаверное, какие-то внутренние причины для разделения у разработчиков FB были причём тут разработчики FB? NULL и пустая строка разные сущности ещё со времён Interbase ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 09:48 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
*сарказм* Ага, а для чисел NULL сделать эквивалентным 0, чего сущности плодить ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 10:41 |
|
Как выбрать пустые строки(G0 is null or G0 = '')?
|
|||
---|---|---|---|
#18+
Василий №2а для чисел NULL сделать эквивалентным 0*сарказм off* Не надо. и для строк, кстати тоже не надо. Я бы хотел различать ситуации когда у меня пустая строка и когда я прицепил лефт джойном нечто а там нет строки совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2017, 10:57 |
|
|
start [/forum/topic.php?fid=40&fpage=38&tid=1561322]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 154ms |
0 / 0 |