我在联接表中有一个带有“内部联接”的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/

10-11 05:23