Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с isnull  [new]
Юзерочег__
Guest
Добрый день! Всех с наступающим!
Мне надо чтобы след. запрос если нету значений возвращал 0 вместо null:

SELECT isnull(CONVERT(float,Price),0) FROM Contract d
WHERE Id=(Select Max(Id) from Contract where d.icode=1100356)
Где я написал неправильно?
Спасибо.
31 дек 09, 08:53    [8139992]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
step_ks
Member

Откуда:
Сообщений: 936
Сейчас он что у вас возвращает?
31 дек 09, 09:18    [8140016]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
Если под условие не попадает записей, то ноль вернуть можно используя переменную
31 дек 09, 10:11    [8140241]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
vino
Member

Откуда:
Сообщений: 1191
Юзерочег__
SELECT isnull(CONVERT(float,Price),0) FROM Contract d
WHERE Id=(Select Max(Id) from Contract where d.icode=1100356)
Где я написал неправильно?
Спасибо.

а какого типа Price?
31 дек 09, 10:26    [8140322]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
vino
Member

Откуда:
Сообщений: 1191
Считая, что в Price числового типа
SELECT TOP 1 isnull(Price,0) FROM Contract WHERE icode=1100356 ORDER BY Id DESC
31 дек 09, 10:29    [8140333]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
__юзерок
Guest
Price - тип numeric (16,2)
SELECT TOP 1 isnull(Price,0) FROM Contract WHERE icode=1100356 ORDER BY Id DESC
И пред-й и этот запросы ничего не возвращают - (No column name). Не знаю это null или вообще что то другое. По моему под условие ни одной записи неподпадают.
31 дек 09, 11:02    [8140517]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Supra93
Member

Откуда:
Сообщений: 8174
__юзерок

И пред-й и этот запросы ничего не возвращают - (No column name). Не знаю это null или вообще что то другое. По моему под условие ни одной записи неподпадают.

SELECT NULL
GO
SELECT 1 FROM SYSOBJECTS WHERE 1=0
Сравните результат
31 дек 09, 11:16    [8140593]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
__юзерок
Guest
В первом Null
Во втором ничего
Мдеее...а как быть? Мне надо без переменной обойтись...
31 дек 09, 11:22    [8140620]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
Задачу более подробно опишите, что хотите достич, а то не ясно почему вам переменная не подходит и что вы хотите получить из исходного запроса
31 дек 09, 11:24    [8140626]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Supra93
Member

Откуда:
Сообщений: 8174
__юзерок
В первом Null
Во втором ничего
Мдеее...а как быть? Мне надо без переменной обойтись...

Задачу объясните для начала. Структуру таблиц, тестовые данные, и что хотите получить от запроса.
31 дек 09, 11:24    [8140627]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
бгг
31 дек 09, 11:25    [8140631]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
__юзерок
Guest
Задача такая что если нету записей или если null надо возвратить 0.
Хорошо, а как сделать с помощью переменной?
31 дек 09, 11:28    [8140642]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Supra93
Member

Откуда:
Сообщений: 8174
__юзерок
Задача такая что если нету записей или если null надо возвратить 0.
Хорошо, а как сделать с помощью переменной?

Как вы потом отличите что Вам сервер ответил?
Т.е. Вернул он NULL - это найдена запись с NULL или не найдена?
31 дек 09, 11:31    [8140649]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Supra93

Как вы потом отличите что Вам сервер ответил?
Т.е. Вернул он 0 - это найдена запись с NULL или не найдена?
31 дек 09, 11:32    [8140651]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
declare @price as money

SELECT top 1 @price=CONVERT(float,Price) FROM Contract d
WHERE Id=(Select Max(Id) from Contract where d.icode=1100356)

set @price=isnull(@price,0)
31 дек 09, 11:35    [8140656]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
__юзерок,

оно ?
declare @t table(id int, icode int, price numeric(15,4))
insert @t select 112,111222,654651.12
insert @t select 203,111222,978389.17
insert @t select 103,111222,902901.29
insert @t select 144,111222,828829.17

insert @t select 141,111231,783769.19
insert @t select 101,111231,118892.21
insert @t select 187,111231,366231.23
insert @t select 137,111231,763169.27

Select price_for_max_id=isnull(cast(right(max( cast(Id as char(10))+cast(price as char(15)) ),15) as float),0)
from @t dx 
where dx.icode=1100356
--where dx.icode=111222
31 дек 09, 17:49    [8141709]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с isnull  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
select isnull(
 (
 select Price FROM Contract d
 WHERE Id=(Select Max(Id) from Contract where d.icode=1100356) 
 )
,0)
-------------------------
There’s no silver bullet!
31 дек 09, 17:53    [8141719]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить