【发布时间】:2012-06-03 23:04:05
【问题描述】:
我有一个 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
但是 BIT 列上没有 MAX。那我该怎么做呢?
谢谢,
【问题讨论】:
-
如果您想确保恰好一个值为1,您似乎需要使用
SUM和GROUP BY。
标签: sql sql-server tsql sql-server-2008 stored-procedures