私はテーブルを持っていますTableX。A INTこれには、、、B INTおよびC VARCHAR(1)(列Cの有効な値は列「A」または「B」の名前)の3つの列が含まれます。次のいずれかの条件が満たされた場合の発生数をカウントする必要があります。
CisNULLおよび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条項内の関連する列への参照を動的に取得するにはどうすればよいですか?
御時間ありがとうございます。