3

このサイトとSQLは初めてです。以下のMSSQLでクエリを作成するためのヘルプが必要です

Select *
From Table1
Where customer = '123' and asofdate = '2012-01-01'

これが私の問題の始まりです。上記の顧客と上記の日付のみのデータが必要ですが、下の列を確認して、データが表示されている場所にその行を表示したいと思います)

and abc !='0', abcd !='0', abcde !='0', abcdef !='0'

上記の行の間に使用する"or"と、他の顧客番号でも行が表示され、「and」を入力しても行は表示されません。

4

3 に答える 3

6

あなたの要件を正しく理解していれば、括弧を使用してブール論理をサブ式にグループ化できます。

Select * From Table1 Where customer = '123' and asofdate = '2012-01-01' and (abc != 0 OR abcd != 0 OR abcde != 0 OR abdcdef != 0)

これは同等である可能性があります

WHERE true and true and (true or false or false or false)

これは「true」になります。たとえば、括弧内の ORed テストの一部は失敗する可能性がありますが、そのうちの 1 つが true である限り、結果全体が true であり、結果セットにフィルターされます。

注: 数値には引用符を使用しないでください。文字列 (または日付) にのみ使用してください。

于 2012-08-15T15:05:29.970 に答える
1

WHERE ステートメントで括弧を使用できます。

WHERE customer = '123' and asofdate = '2012-01-01' and
      (abc !='0' or abcd !='0' or abcde !='0' or abcdef !='0')
于 2012-08-15T15:06:01.940 に答える
1

ANDと括弧で条件を追加するだけです。

Select *
From Table1
Where (customer = '123' and asofdate = '2012-01-01')
    AND (abc !='0' OR abcd !='0' OR abcde !='0' OR abcdef !='0')
于 2012-08-15T15:06:40.550 に答える