0

bitデータ型のリストを含む単一のテーブルがあります。これらの属性のうちの 2 つを呼び出し、attrib1両方attrib2= 1 の場合、クエリ内の 1 つの列を 1 として出力したいと思います。

それらの両方が 0 の場合、最初の結果セットを 2 番目の結果セットに結合したいと思います。両方の属性が 0 の場合、1 つの列が 0 で出力されます。

それで

SELECT attrib1, attrib2  
FROM myTable
WHERE (attrib1 = 1) AND (attrib2 = 1)

ケースが真の場合にのみ、「1」を含む1つの列に出力するステートメントが必要です。

4

1 に答える 1

1

両方の列または0または1のいずれかを持つ行のみが選択されるようBitwise Exclusive OR (^)に、WHERE句にa が必要です。では、を使用して、両方の列が1の場合は1を表示し、両方の列が0の場合は0を表示する必要があります。attrib1attrib2SELECTBitwise And (&)

脚本:

CREATE TABLE dbo.myTable
(
        id      int NOT NULL IDENTITY
    ,   attrib1 bit NOT NULL
    ,   attrib2 bit NOT NULL
);

INSERT INTO dbo.myTable (attrib1, attrib2) VALUES
    (1, 1),
    (0, 1),
    (1, 0),
    (0, 0);

SELECT  id
    ,   attrib1 & attrib2 AS attrib1_2
FROM    dbo.myTable
WHERE   (attrib1 ^ attrib2 = 0);

結果は次のようになります。

id   attrib1_2
--   ---------
1       1
4       0
于 2012-04-27T20:05:24.880 に答える