如何在單個sql查詢中獲得布爾列的所有值的「AND」。如何在單個sql中獲得布爾列的所有值的「AND」
爲鄰以上/ p應該是假的,
如果所有屬實則O/P:真,
如果所有/ atlease一個值假,則O/P :假。
如何在單個sql查詢中獲得布爾列的所有值的「AND」。如何在單個sql中獲得布爾列的所有值的「AND」
爲鄰以上/ p應該是假的,
如果所有屬實則O/P:真,
如果所有/ atlease一個值假,則O/P :假。
試試這個
IF EXISTS (SELECT ActiveStatus From TableName where ActiveStatus = 0)
SELECT 'False'
ELSE
SELECT 'True'
AS OutputColumn
declare @status varchar(10)
if exists(select null from [Status] where ActiveStatus = 0)
set @status = 'false'
else
set @status = 'true'
select @status as [Status]
可以間接使用MIN
爲AND和MAX
爲OR.if你考慮到一個BIT
科拉姆是零個或一個:
MIN
:只有當所有的值都是1(真),結果將是1(真),它的工作原理類似AND
MAX
:如果至少有一個1(真),其結果將是1(真),它就像OR
如果您嘗試直接在BIT
列中使用MIN
或MAX
,它會失敗,所以你需要將其轉換爲整數類型,回位,像這樣:
SELECT CAST(MIN(CAST(BitColumn AS TINYINT)) AS BIT) FROM Table -- for AND
SELECT CAST(MAX(CAST(Bitcolumn AS TINYINT)) AS BIT) FROM Table -- for OR
可以很容易地包括這更復雜的查詢,例如一個與GROUP BY
爲什麼你會需要這個? – hgulyan 2014-09-23 07:38:42
我必須啓用/禁用基於此值的C#ui中的按鈕。 – 2014-09-23 07:39:50
加載的方法來做到這一點,但我能想到的最簡單的方法是簡單地總結它們並檢查總和是否如預期 – 2014-09-23 07:40:25