Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизПОМОГИТЕ грамотно организовать поиск на базе SP? Найти похожие ветки
← →
DBDev (2003-05-29 16:55) [0]Собирать в процедуре текст запроса, а затем выполнять:
напр:
declare @query_text nvarchar(512)
declare @IsStated INT
SET @IsStated = 0
SET @query_text = "SELECT * FROM Base "
if (@RegPlaceID <> "0")
begin
if (@IsStated = 0)
begin
SET @IsStated = 1
SET @query_text = @query_text + " WHERE RegPlaceID = " + @RegPlaceID
end
...
exec sp_executesql @query_text
Если собирать, то каким образом строить выражения содержащие строки, то есть:
SET @query_text = @query_text + " WHERE Reg LIKE = " + СИМВОЛ_КАВЫЧКИ + @Reg + СИМВОЛ_КАВЫЧКИ
Что есть символ кавычки в этом случае ?
А если сразу выполять, то как прописать случай если фильтр равен нулю, не нагромождать же процедуру и впрям конструкциями типа:
IF @SupplierID = 0
Select a,b,c from T
IF @SupplierID <> 0
Select a,b,c from T WHERE SupplierID = @SupplierID
← →
NAlexey (2003-05-29 17:06) [1]>Что есть символ кавычки в этом случае ?
" "" - это есть символ кавычки
>не нагромождать же процедуру и впрям
нагромождать
← →
NAlexey (2003-05-29 17:09) [2]Оговорюсь: Грамотно нагромаждать -
IF @SupplierID = 0
SET @Part = ""
IF @SupplierID <> 0
SET @Part = "WHERE SupplierID = @SupplierID"
SET @query_text = @query_text + @Part
← →
SergSuper (2003-05-30 10:27) [3]откуда такая любовь к динамическим запросам?
написать 4 строчки - это нагромаждать, а написать 13 строчек с динамическим запросом - это типа нет, типа понятней стало
ну не знаю, я бы так написал
Select a,b,c from T WHERE SupplierID = @SupplierID or @SupplierID = 0
← →
Sandman25 (2003-05-30 10:57) [4]IF @SupplierID <> 0
SET @query_text = @query_text + "WHERE SupplierID = @SupplierID"
А если условий несколько, то делаешь так
SET @query_text = "select * from t1 where 1=1"
IF @SupplierID <> 0
SET @query_text = @query_text + "AND SupplierID = @SupplierID"
IF @Detail <> 0
SET @query_text = @query_text + "AND Detail = @Detail"
IF @PostNumber <> 0
SET @query_text = @query_text + "AND PostNumber = @PostNumber"
← →
Sandman25 (2003-05-30 11:03) [5]Упс, пробелы перед AND забыл :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c