T-SQL(SQL Server 2016)bit
型の場合、論理積と論理和の集計に相当する方法はありますか?たとえば、この表で:isRed
のどのが設定されている(OR)、および場合はisBlue
の全てが(設定されている場合はタイプ 'ビット'を持つ列の論理AND/OR
CREATE TABLE #Example (id int, category int, isRed bit, isBlue bit)
INSERT INTO #Example VALUES ( 1, 1, 1, 1)
INSERT INTO #Example VALUES ( 2, 1, 0, 0)
INSERT INTO #Example VALUES ( 3, 1, 1, 0)
INSERT INTO #Example VALUES ( 4, 2, 0, 1)
INSERT INTO #Example VALUES ( 5, 2, 0, 1)
INSERT INTO #Example VALUES ( 6, 2, 0, 1)
私は、カテゴリごとに、一覧表示するクエリを作成したいのですがAND)、例えば出力:
category anyRed allBlue
1 1 0
2 0 1
私のようなのようなものいただきたい、である:私は考えることができる唯一の事は試してみ
SELECT
category,
OR(isRed) isAnyRed,
AND(isBlue) isAllBlue
FROM
#Example
GROUP BY
category
をした
動作しませんSELECT
category,
MAX(isRed) isAnyRed,
MIN(isBlue) isAllBlue
FROM
#Example
GROUP BY
category
、エラーを与える:
Operand data type bit is invalid for max operator.
他のすべての集計関数でも同様の結果が得られます。
を疑いの余地なくシンプル。完璧、ありがとう。 –
@JasonC MINとMAXを使った解が正しい場合、問題はCONVERTにあります。助けてうれしい! – Backs