Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
ВнизПроблема с запросом Найти похожие ветки
← →
Киря (2005-10-08 08:13) [0]Имеется следующий запрос:
Select * from Operations where (TabNoP=:TabNoP) and (TabNoV=:TabNoV) and (TabNoT=:TabNoT)
причем Поле TabNoT может иметь значение null
И если параметр TabNoT= NULL то в результате получается пустая таблица хотя данные удовлетворяющие условию запроса в таблице есть
В чем причина неработоспособности запроса?
И что нужно сделать что-бы все работало?
Заранее спасибо
← →
DJON (2005-10-08 09:31) [1]Если таблица пустая значит один из параметров не удовлетворяет условию
(TabNoP=:TabNoP) and (TabNoV=:TabNoV) and (TabNoT=:TabNoT)
попробуй построить запрос с каждым параметром например:
Select * from Operations where TabNoT=:TabNoT и так далее
← →
Sergey13 © (2005-10-08 10:10) [2]Вмето
and (TabNoT=:TabNoT)
((:TabNoT is Null) and (TabNoT is Null)) or ((:TabNoT is Not Null) and (TabNoT=:TabNoT))
← →
sniknik © (2005-10-08 10:39) [3]> В чем причина неработоспособности запроса?
сравнение null с собой (null = null) не дает положительного результата.
надо проверять дополнительно. т.е.
and (TabNoT=:TabNoT or TabNoT IS NULL)
← →
sniknik © (2005-10-08 10:53) [4]а ну да, тут надо или или. условие Sergey13 © (08.10.05 10:10) [2] вернее чем у меня, только параметры надо разные сделать
или с одним :
DECLARE @TabNoT INT
SET @TabNoT = :TabNoT
Select .... (@TabNoT is Null and TabNoT is Null) or (@TabNoT is Not Null and TabNoT=@TabNoT)
← →
Fay © (2005-10-09 04:29) [5]create table Test(
Field1 int not null identity primary key,
Field2 varchar(20) null
)
go
insert into Test values("1")
insert into Test values(null)
insert into Test values("2")
insert into Test values(null)
go
set ansi_nulls off
select * from Test where Field2 = null
set ansi_nulls on
go
select * from Test where Field2 = null
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.051 c