我在联接表中有一个带有“内部联接”的SELECT请求,是一列具有位类型的列。
如果联接表中的值最多为1,我想选择1。如果不是,则值将为0。
所以,如果我有:
PERSID | NAME
1 | Toto
2 | Titi
3 | Tata
还有第二张桌子
PERSID | BOOL
1 | 0
1 | 0
2 | 0
2 | 1
我想得到结果
Toto -> 0
Titi -> 1
Tata -> 0
我尝试这样:
SELECT
sur.*
,MAX(bo.BOOL)
FROM SURNAME sur
INNER JOIN BOOL bo
ON bo.IDPERS = sur.IDPERS
但是MAX在BIT列上不可用。那么我该怎么做?
谢谢,
最佳答案
您可以将其转换为INT
,如果需要,甚至可以将其转换回BIT
SELECT
sur.*
,CAST(MAX(CAST(bo.BOOL as INT)) AS BIT)
FROM SURNAME sur
INNER JOIN BOOL bo
ON bo.IDPERS = sur.IDPERS
关于sql - 获取BIT列的最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10803968/