假设我的表格中包含int primary key
,varchar
和bit
值。请记住,我实际上并没有使用这样的东西,但它说明了我在SELECT
声明中要做的事情。
虚假表:
CREATE TABLE HorribleSample(
Id INT IDENTITY(1,1) NOT NULL,
Code VARCHAR(6) NOT NULL,
IsTrue BIT NOT NULL,
CONSTRAINT PK_HorribleSample PRIMARY KEY CLUSTERED(Id ASC)
)
示例数据:
INSERT INTO HorribleSample VALUES('HELLO', 0)
INSERT INTO HorribleSample VALUES('WORLD', 1)
INSERT INTO HorribleSample VALUES('HELLO', 1)
INSERT INTO HorribleSample VALUES('WORLD', 1)
我要做的是从结果集中选择最低位值。我以为我能做到:
SELECT MIN(IsTrue)
FROM HorribleSample
WHERE Code = 'HELLO'
但是我收到一条错误消息,指出我无法在MIN
字段上使用bit
。
当代码为HELLO
时,我会期待0
,但是当它是WORLD
时,我会期望1
。我怎么能做到这一点?它甚至可能吗?
答案 0 :(得分:5)
试试这个:
SELECT TOP 1 *
FROM HorribleSample
WHERE Code = 'HELLO'
ORDER BY IsTrue
答案 1 :(得分:3)
您需要将该位转换为int
CAST(IsTrue as int)
答案 2 :(得分:1)
像这样:
SELECT MIN(CAST(IsTrue AS INT))
FROM HorribleSample
WHERE Code = 'HELLO'
祝你好运!