行番号25のエラー: ユーザーが選択した組み合わせに基づいてデータを返すストアドプロシージャを作成しています。例として、私は3種類のフィルター(市/区域/ベンダータイプ)を持っています。ユーザーがCity = xyzとArea = pqrを選択した場合、結果はCity = xyzとArea = pqrのみのすべてのデータでなければなりません。ユーザーがオプションを選択しなかった場合、3つのパラメータの値をすべて設定するとnullになり、データベースからすべての行が返されます。 注:上記の3つの列には、常にデータベースにデータが含まれている必要があります。 私はSQL接続を使用してこのストアドプロシージャを呼び出すための[WEBMethod]を1つ作成しました。 AJAX jqueryを使用してすべてのパラメータを渡します。エラー156重大度15状態1キーワードの近くに不正な構文IF
ALTER PROCEDURE [dbo].spGetVendorbyFilter
@PageNumber INT,
@PageSize INT,
@city VARCHAR(200),
@area VARCHAR(200),
@vendortype VARCHAR(200)
AS
BEGIN
DECLARE @StartRow INT
DECLARE @EndRow INT
SET @StartRow = ((@PageNumber - 1) * @PageSize) + 1;
SET @EndRow= @PageNumber * @PageSize;
WITH Result
AS (
SELECT *,
Row_number()
OVER (
ORDER BY VendorID ASC) RowNumber
FROM tblVendor
)
IF (@city IS NOT NULL AND @area IS NULL AND @vendortype IS NULL)
SELECT *
FROM Result where [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE IF (@city IS NULL AND @area IS NOT NULL AND @vendortype IS NULL)
SELECT *
FROM Result where [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE IF (@city IS NULL AND @area IS NULL AND @vendortype IS NOT NULL)
SELECT *
FROM Result where [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE IF (@city IS NOT NULL AND @area IS NOT NULL AND @vendortype IS NULL)
SELECT *
FROM Result where [email protected] And [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE IF (@city IS NOT NULL AND @area IS NULL AND @vendortype IS NOT NULL)
SELECT *
FROM Result where [email protected] And [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE IF (@city IS NULL AND @area IS NOT NULL AND @vendortype IS NOT NULL)
SELECT *
FROM Result where [email protected] And [email protected] AND RowNumber BETWEEN @StartRow and @EndRow
ELSE
SELECT *
FROM Result WHERE RowNumber BETWEEN @StartRow and @EndRow
END
申し訳ありませんミラノ、IF文を使用して条件付きCTEを生成することはできません。私は考えているのですか?パラメータAreaとVendorTypeをオプションにしたいのですか? –
@Destination - あなたの返答をありがとう。多分あなたは正しいです。ユーザーが3つのオプション(市区町村/エリア/ベンダータイプ)を選択すると、それに応じてデータが必要です。オプションが1つも選択されていない場合は、すべてのデータが表示されます。 – MRG