SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.01.2012 19:33:38

DIMMER
Участник
Зарегистрирован: 08.01.2012
Сообщений: 3

Подскажите аналог IsNull ms sql'я для MySql

1. Ситуация:
Делаю выборку из таблицы двух полей поле А (int 2), поле Б (varchar), с объединением
CONCAT(`t`.`a`, '. ', `t`.`b`) as `myname`

Но как только встречается поле A с значением null выводится пустая строка несмотря на то что во втором поле есть значение.
В ms sql есть фунция IsNull(поле, [значение для подстановки если поле null]) Подскажите как обойти ситуацию.

2. Ситуация:
Запрос с объединением двух полей в одно, но в случае если одно из низ не null дополнительно перед значением этого поля вывести свой текст.
т.е. результат следующий:

1случай
Поле А = "А"
Поле Б = "Б"
(поле А + поле Б) как поле С
и если поле А не null допишем чтонить "+"
получиться должно  Поле С = "А+Б"

2случай
Поле А = NULL
Поле Б = "Б"
резултат должен быть Поле С = "Б"


Спасибо! Всех с праздниками!!!

Неактивен

 

#2 08.01.2012 19:51:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5831

Re: Подскажите аналог IsNull ms sql'я для MySql

ifnull(поле, [значение для подстановки если поле null])

Неактивен

 

#3 08.01.2012 19:54:46

DIMMER
Участник
Зарегистрирован: 08.01.2012
Сообщений: 3

Re: Подскажите аналог IsNull ms sql'я для MySql

спасибо уже нашел но в моем случае подходит больше просто IF

Неактивен

 

#4 08.01.2012 21:06:28

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Re: Подскажите аналог IsNull ms sql'я для MySql

Но как только встречается поле A с значением null выводится пустая строка несмотря на то что во втором поле есть значение.

Для такого случае лучше CONCAT_WS() -  ей NULL нипочем:

SELECT
       CONCAT('A', NULL, 'B'), -- вернет NULL
       CONCAT_WS('', 'A', NULL, 'B') -- вернет 'AB'


Обратите, однако, внимание, что ей нужен дополнительный аргумент (который идет первым) - строка для склейки.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson