-2
私は@NULLFather' and '@NULLMother
の値を設定するコンボボックスを持っています。コンボボックスがチェックされると、ストアドプロシージャのWHERE
句は@NULLFather' and '@NULLMother
の値をチェックし、それに基づいて結果を返します。しかし、私はそれを働かせることはできません。ここにコードがあります。私はまた、ケースの状態を試みたが、まだ成功していない。SQL Serverのストアドプロシージャ(条件付きwhere節)
USE myStudentDB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ManualSearchStudents]
-- Add the parameters for the stored procedure here
@NullFather int = 1,
@NullMother int = 1
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT StudentName, FatherName, MotherName
FROM StudentTable
WHERE IF(NULLFather > 0) THEN FatherName IS NULL
AND IF(NullMother > 0) THEN MotherName IS NULL
ORDER BY StudentTable.StudentID DESC
END
'(@NullFather = 0 OR FatherName IS NULL)してみてくださいAND(@NullMother = 0 OR MotherName IS NULL)>' – TZHX
が@NullFatherの値ならばそれは作品しようとしました0しかし、ときに:ここでは、コードです値は0ですが、結果は表示されません – Quest
EFのようなORMを使用してLINQを使ってそのようなクエリを作成する方がはるかに簡単です。 SQL Serverは、実行計画を最初の実行から、その実行パラメータに基づいてキャッシュするため、「オプションのパラメータ」ではパフォーマンス上の利点は得られません。 –