[mssql] как внутри procedure узнать что параметр dec = null ?
бля
cлучайно нашёл в примере к if из хелпа
нада не if(@parameter = 0) а if(@parameter is null)
cлучайно нашёл в примере к if из хелпа
нада не if(@parameter = 0) а if(@parameter is null)
а можно просто SET ANSI_NULLS OFF
@param = ifnull(...,0)
@param = ifnull(...,0)что это?
это SQL
Ну по крайней мере MySQL...
Ну по крайней мере MySQL...select @parameter = ifnull (select blah blah blah ... from blah blah blah ... where blah blah blah ..., 0)
имхо, не ifnull а nullif хотя хз ентих МС знает - у них все не как у людей 
а вообще nullif(..,0) делает прямо противоположную задачу
а тут поможет coalesce:
ЗЫ coalesce( список параметров ) возвращает первый элемент из списка параметров который "is not null"

а вообще nullif(..,0) делает прямо противоположную задачу

а тут поможет coalesce:
@param = coalesce(...,0)
ЗЫ coalesce( список параметров ) возвращает первый элемент из списка параметров который "is not null"
ifnull (select blah blah blah ... from blah blah blah ... where blah blah blah ..., 0)судя по всему, это мускульный аналог coalesce
и к стандартному nullif не имеет никакого отношения 
о. в MSSQL он называется isnull 

короче, m*sql - ацтой 
имхо, coalesce - это стандарт

имхо, coalesce - это стандарт
> короче, m*sql - ацтой
первая ссылка в google: coalesce sql кстати ведет на:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_9dph.asp
первая ссылка в google: coalesce sql кстати ведет на:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_9dph.asp
просто mssql довольно старый продукт, возможно isnull сделали до sql-92
а че ето мсдн онлайн такой стремный?
или это какой-то облегченный?
или это какой-то облегченный?
что значит "стремный"?
скажем нестандартный.
а можно просто SET ANSI_NULLS OFFА можно поподробнее ? Что именно значит эта команда ?
эта команда отключает поведение оперетора = по стандурту, когда сравнивается значение с NULL
при set ansi_nulls on условие a = null никогда не выполнится
при set ansi_nulls off условие a = null эквивалентно a is null
при set ansi_nulls on условие a = null никогда не выполнится
при set ansi_nulls off условие a = null эквивалентно a is null
То есть a=b верно если они оба null?
Ахуэнная идея! 
Ахуэнная идея! 
"а здесь для простоты примем "пи" равным шести"...


Оставить комментарий
Alena_08_11
короче есть какая то procedure в которой есть :....
declare
@parameter dec(18,2
....
select
@parameter = (select blah blah blah ... from blah blah blah ... where blah blah blah ...
....
Хочется, если (select blah blah blah ... from blah blah blah ... where blah blah blah ...) ничего не возвращает, приравнять @parameter к нулю
пробовал пока только так :
....
select
@parameter = (select blah blah blah ... from blah blah blah ... where blah blah blah ...)
if(@parameter = null)
begin
select @parameter = 0
end
...
Почему то не получаеццо