powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Конкатенация с NULL
25 сообщений из 48, страница 1 из 2
Конкатенация с NULL
    #38494349
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени.

Товарищи подскажите, как объединить значения если в одном из случаем есть нулл в таком запросе
Код: sql
1.
CONCAT(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(tex.time,'%H:%i'),null)) ,'|', MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(off.time,'%H:%i'),null))) as '05.11'


ПС я знаю что если в одном есть нулл то будет нулл...
Но все же ?
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38494370
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM COALESCE()
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38494385
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот фрагмент может быть применен к пустому наборы данных?
Если нет, то достаточно заменить null-ы на '' (пустую строку).
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38494438
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

как ?
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38494450
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFmiksoft,

как ?руками.
Код: sql
1.
CONCAT(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(tex.time,'%H:%i'),'')) ,'|', MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(off.time,'%H:%i'),''))) as '05.11'
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38495015
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Я Вас вероятно первый раз не понял.

Этот фрагмент относится так же к пустому набору данных

сейчас данные при объединении выглядят так 00:00 | 01:00, либо null.
хотя в бд первое условие может быть пустым т.е. |02:00 или наоборот 02:12 |
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38495063
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFЭтот фрагмент относится так же к пустому набору данныхНу тогда придется функцию применить
Код: sql
1.
CONCAT(IFNULL(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(tex.time,'%H:%i'),'')),'') ,'|', IFNULL(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(off.time,'%H:%i'),'')),'')) as '05.11'

скобки только проверьте, мог напутать...
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497703
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
А так он мне просто " | "
при выполнении дает вместо нулл..
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497709
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFmiksoft,
А так он мне просто " | "
при выполнении дает вместо нулл..А разве не это требовалось? Я понял так, что нужно, чтобы один из NULL-ов не приводил к NULL все выражение в целом.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497725
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftbboyRALFmiksoft,
А так он мне просто " | "
при выполнении дает вместо нулл..А разве не это требовалось? Я понял так, что нужно, чтобы один из NULL-ов не приводил к NULL все выражение в целом.
Не совсем ))) у меня есть часы работы за дату с 09:00 до 18:00
У меня запрос так и выводит 09:00 | 18:00, но есть случаи когда ПО не записывает 09:00 либо 18:00.
Мне нужно такие выводить как" 9:00| " , либо " | 18:00 "
вот.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497731
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFесть случаи когда ПО не записывает 09:00 либо 18:00.
Мне нужно такие выводить как" 9:00| " , либо " | 18:00 "Тогда мой вариант должен работать.
Просто "|" он будет выводить только когда обе стороны NULL, но что делать в таком случае - Вы не написали.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497740
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftbboyRALFесть случаи когда ПО не записывает 09:00 либо 18:00.
Мне нужно такие выводить как" 9:00| " , либо " | 18:00 "Тогда мой вариант должен работать.
Просто "|" он будет выводить только когда обе стороны NULL, но что делать в таком случае - Вы не написали.

если вообще ничего нету, тогда нулл.
Но Ваш вариант. он делает тоже самое что и нулл получается, потому что если одно значение из сторон нулл, то в итоге я нулл и получаю. А я же хочу чтобы он выводил 9:00 | NULL, чтобы понять за какие даты ПО не записало инф
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38497742
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFвыводить как" 9:00| "bboyRALFхочу чтобы он выводил 9:00 | NULLВы уж определитесь, пожалуйста.
Для второго варианта будет так:
Код: sql
1.
CONCAT(IFNULL(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(tex.time,'%H:%i'),'NULL')),'NULL') ,'|', IFNULL(MAX(IF(tex.date = '05.11.2013',TIME_FORMAT(off.time,'%H:%i'),'NULL')),'NULL')) as '05.11'
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38498957
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

что-то совсем не получается, ifnull это подобие case ?
Может вся проблема в конкат ?
при объединении 0 и 1 будет всегда 0.
Тогда как мне их объеденить?
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38498978
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы друг друга не понимаем.
Приведите пример исходных данных с разными вариациями NULL/не-NULL и покажите конкретный результат, который нужно получить.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38498983
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFпри объединении 0 и 1 будет всегда 0.Нет, будет '01'.
http://sqlfiddle.com/#!2/d41d8/27028
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38498984
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFifnull это подобие case ?Нет, это COALESCE для ОДНОГО значения.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38498986
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftМы друг друга не понимаем.
Приведите пример исходных данных с разными вариациями NULL/не-NULL и покажите конкретный результат, который нужно получить.

Иванова Иван 08:46|14:03
Петров Петр NULL <- вот здесь должно быть 07:30 | nul

сейчас такой запрос
Код: sql
1.
CONCAT(IFNULL(MIN(IF(tex.date = '01.11.2013',TIME_FORMAT(tex.time,'%H:%i'),NULL)),'nul') ,'|', IFNULL(MAX(IF(tex.date = '01.11.2013',TIME_FORMAT(off.time,'%H:%i'),NULL)),'nul')) as '01.11',
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499001
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFПетров Петр NULL <- вот здесь должно быть 07:30 | nulоткуда тут возмется 07:30, если в исходных данных их нет?
И разбейте ваш пример на поля. Сейчас невозможно понять, где начинается одно поле и начинается другое.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499009
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinabboyRALFifnull это подобие case ?Нет, это COALESCE для ОДНОГО значения.Точнее, для двух.

Записать можно и через CASE, но получится заметно длиннее.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499018
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Код: plaintext
1.
Иванова Иван	 08:46|14:03
Петров Петр	 NULL  <- вот здесь должно быть 07:30 | nul 

так?
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499027
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bboyRALFmiksoft,

Код: plaintext
1.
Иванова Иван	 08:46|14:03
Петров Петр	 NULL  <- вот здесь должно быть 07:30 | nul 
так?Не так.
Отдельно покажите пример исходных данных и отдельно результат. Я не понимаю ваши стрелки и т.п.
И желательно воспользоваться тегом CSV (кнопка Table).
Примерно так:
FIO TIME_START TIME_ENDИванова Иван 08:4614:03Петров Петр ??????
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499047
bboyRALF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

исходные данные
08.11.2013 \ 07:58\Ivanov \ Приветствие
08.11.2013 \ 11:46\Ivanov \ Блокировка
08.11.2013 \ 12:14\Ivanov \ Разблокировка
08.11.2013 \ 17:00\Ivanov \ Завершение работы

name 01.ноя 05.нояИванов Александр 07:48|16:47 07:50|17:01Кулик Анастасия 09:09|19:26 09:06|18:30Петренко Виктория 08:59|18:00 08:45|18:13Иванов Иван 08:46|14:03 08:35|18:00Петренко Петр NULL 07:30|17:00Ухов Сергей 08:52|20:51 NULL
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499052
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftТочнее, для двух.Формально да. Но крайне редко.
...
Рейтинг: 0 / 0
Конкатенация с NULL
    #38499075
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinamiksoftТочнее, для двух.Формально да. Но крайне редко.Что значит "крайне редко" ? У IFNULL всегда ровно два параметра. И IFNULL(A,B) эквивалентно COALESCE(A,B).
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Конкатенация с NULL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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