ALTER PROCEDURE spDisplayTableNames1
@T_ID INT OUT,
@BatchNumber VARCHAR(30) OUT
AS
BEGIN
IF((SELECT COUNT(*) FROM tblPacks
WHERE T_ID = @T_ID
AND BatchNumber = @BatchNumber) = 0)
AND ((SELECT COUNT(*) FROM tblBlisters
WHERE T_ID = @T_ID
AND BatchNumber = @BatchNumber) = 0)
AND ((SELECT COUNT(*) FROM tblShippers
WHERE T_ID = @T_ID AND BatchNumber = @BatchNumber) = 0)
BEGIN
PRINT '0 0 0'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])=0)
BEGIN
Print '1 0 0'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])=0)
BEGIN
Print '0 1 0'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])>0)
BEGIN
Print '0 0 1'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])=0)
BEGIN
Print '1 1 0'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])>0)
BEGIN
Print '1 0 1'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])=0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])>0)
BEGIN
Print '0 1 1'
END
ELSE IF((SELECT COUNT(*) FROM tblPacks WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblBlisters WHERE [email protected]_ID AND [email protected])>0) AND ((SELECT COUNT(*) FROM tblShippers WHERE [email protected]_ID AND [email protected])>0)
BEGIN
Print '1 1 1'
END
END
ここで私は3つのテーブルの条件をチェックしていますが、3つのテーブルにカラムが存在する場合は '1 1 1' 1 0 1 'となる。そのように私は8つの条件文を書いた。しかし、私は、上記のストアドプロシージャの簡略化されたクエリをしたいですIfとelse IFクエリを簡略化
私は上記の例のための最も簡単なクエリが欲しいです - 私はそれを行うことができますか?
「1 0 0」:また
、すべての条件ロジックが
select
で行うことができます。しかし、それはおそらく簡単に修正されます... – takrlいいえ、それはプレフィックスとしてスペースを与えません。しかし、最後に宇宙が来るでしょう。必要な場合は削除することができます。しかし、末尾のスペースは問題ではありません –
あなたはそうです、それは末尾のスペースです、私はコードを誤読しました。どちらもLTRIM()またはRTRIM()で簡単に修正できます... – takrl