:以下
は私が持っているものです。
IF ((@GARRISON != 'Netheravon' AND @GARRISON != 'Ludgershall'))
AND @INTERRUPT >= 5)
これは、あなたが持っていた問題は、あなたが@variable IS NOT 'constant'
持っているということでした
IF (@GARRISON NOT IN ('Netheravon', 'Ludgershall')
AND @INTERRUPT >= 5)
に短縮することができます - nullをチェックしない限り、このありえない有効なSQL構文を。平等のために=
、非等価使用の場合は!=
または<>
(どちらもIIRC)。
編集:これは私がテストに使用した正確なsctiptであり、期待どおりに機能します。 SQL Server 2008
DECLARE @GARRISON nvarchar(255)
DECLARE @INTERRUPT INT
SET @GARRISON = 'Test'
SET @INTERRUPT = 10
IF (@GARRISON NOT IN ('Netheravon' ,'Ludgershall')
AND @INTERRUPT >= 5)
BEGIN
SELECT 1
END
上記の両方の条件が真と評価されるため、上記の値は正しく「1」を出力します。 @INTERRUPT
を4に変更するか、または@GARRISON
をNetheravonまたはLudgershallに変更すると、出力はありません。これは私が期待する正確な行動です。
注:SQLで空BEGIN...END
ブロックを持つことができないので、それが空である場合は、エラーにそのためのIncorrect syntax near 'END'.
感謝を得るでしょう、今それを行います。 – dotnetdev
まだWrkしていません。完全な質問については私の編集を参照してください。 – dotnetdev
@dotnetdev - "didnt work"を定義します。期待された結果と実際に何が起こったのか – Jamiec