Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ganda
Зарегистрирован: 25.05.2006 Сообщения: 3
|
Добавлено: Пт Июн 02 2006 09:33 Заголовок сообщения: SQL-запрос, вычисление полей с нулевыми значениями |
|
|
Собственно делаю запрос к базе
select ACCOUNT.ACCOUNTNAME as Счет ,
( (select ACCOUNTLIST.REST from ACCOUNTLIST where ACCOUNTLIST.CUSTID = 0 and ACCOUNTLIST.ACCID = ACCOUNT.ID and ACCOUNTLIST.CURRCODE = 'USD') - (select SUM(OUTMONEY.REST) from OUTMONEY where OUTMONEY.ACCID = ACCOUNT.ID and OUTMONEY.CURRCODE = 'USD')) as 3Доллары from Account
Один из селектов возвращает null значение и соотвественно результат будет null. Возможно ли вернуть не null а реальное число в виде 0? |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Пт Июн 02 2006 13:56 Заголовок сообщения: Re: SQL-запрос, вычисление полей с нулевыми значениями |
|
|
Ganda писал(а): | Собственно делаю запрос к базе
select ACCOUNT.ACCOUNTNAME as Счет ,
( (select ACCOUNTLIST.REST from ACCOUNTLIST where ACCOUNTLIST.CUSTID = 0 and ACCOUNTLIST.ACCID = ACCOUNT.ID and ACCOUNTLIST.CURRCODE = 'USD') - (select SUM(OUTMONEY.REST) from OUTMONEY where OUTMONEY.ACCID = ACCOUNT.ID and OUTMONEY.CURRCODE = 'USD')) as 3Доллары from Account
Один из селектов возвращает null значение и соотвественно результат будет null. Возможно ли вернуть не null а реальное число в виде 0? |
если задача состоит в трактовке NULL значения как нолик - то возможны два пути..
1) на стороне клиента. Проверяете значение поля на нулевой признак (типа булевской переменной должно быть, либо спец. опрос на предмет NULL)
2) на стороне сервака. Тут зависит от движка. Например в ORACLE есть очень замечательная встроенная функция NVL(....) можно задать (если не изменяет память) любое значение вместо NULLа. Более подробно - см. доку на свой движок.
с уважением
(круглый) |
|
Вернуться к началу |
|
|
Иван царевич
Зарегистрирован: 20.06.2006 Сообщения: 10
|
Добавлено: Вт Июн 20 2006 16:18 Заголовок сообщения: Re: SQL-запрос, вычисление полей с нулевыми значениями |
|
|
Ganda писал(а): | Собственно делаю запрос к базе
select ACCOUNT.ACCOUNTNAME as Счет ,
( (select ACCOUNTLIST.REST from ACCOUNTLIST where ACCOUNTLIST.CUSTID = 0 and ACCOUNTLIST.ACCID = ACCOUNT.ID and ACCOUNTLIST.CURRCODE = 'USD') - (select SUM(OUTMONEY.REST) from OUTMONEY where OUTMONEY.ACCID = ACCOUNT.ID and OUTMONEY.CURRCODE = 'USD')) as 3Доллары from Account
Один из селектов возвращает null значение и соотвественно результат будет null. Возможно ли вернуть не null а реальное число в виде 0? |
В MSSQLServer это пишется через оператор isnull...
синтаксис таков:
isnull((<запрос который возвращает значение null>),(<выводимое по данному случаю значение> ))
пример:
select isnull((select null),0) |
|
Вернуться к началу |
|
|
|