私はテーブルを持っていますTableX
。A
INT
これには、、、B
INT
およびC
VARCHAR(1)
(列Cの有効な値は列「A」または「B」の名前)の3つの列が含まれます。次のいずれかの条件が満たされた場合の発生数をカウントする必要があります。
C
isNULL
およびdoesに、ゼロ以上のA
値が含まれている場合。B
また- が(
C
つまりNOT NULL
、「A」または「B」)であり、指定された列(A
またはB
)の値がゼロまたは。の場合NULL
。
私の現在のストアドプロシージャは次のようになります
CREATE PROCEDURE ispcSomeName @NumOcc INT OUTPUT
AS
SELECT COUNT(*) AS [NumOcc]
FROM TableName
WHERE (C IS NULL
AND ((A IS NOT NULL OR A > 0) OR
(B IS NOT NULL OR B > 0)))
OR (CritCarType IS NOT NULL
AND (CASE SET @TmpColumnName = CritCareType
WHEN N'A' THEN (A IS NULL OR A <= 0)
WHEN N'B' THEN (B IS NULL OR B <= 0)))
GO
問題は、参照している列を確認する必要があることですC
。つまり、の場合C = 'A'
、私はかどうかを確認する必要がありA IS NOT NULL OR A <= 0
ます。SET
ファイナルのに問題があることは明らかWHERE
です。これらのタイプのSPをいくつか作成する必要があります。支援できる場合は、複雑なTSQLを避けたいと思います...
WHERE
条項内の関連する列への参照を動的に取得するにはどうすればよいですか?
御時間ありがとうございます。