mrj*_*_05 128 sql select boolean
如何在SQL Select语句上返回一个布尔值?
我试过这段代码:
SELECT CAST(1 AS BIT) AS Expr1
FROM [User]
WHERE (UserID = 20070022)
Run Code Online (Sandbox Code Playgroud)
并且只有在表上存在时才返回TRUE值UserID.FALSE如果UserID表中不存在,我希望它返回值.非常感谢你.
Cha*_*had 234
如果用户不存在,那么你所拥有的将根本不返回任何行.这就是你需要的:
SELECT CASE WHEN EXISTS (
SELECT *
FROM [User]
WHERE UserID = 20070022
)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END
Run Code Online (Sandbox Code Playgroud)
cab*_*oad 28
可能是这些方面的东西:
SELECT CAST(CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS BIT)
FROM dummy WHERE id = 1;
Run Code Online (Sandbox Code Playgroud)
http://sqlfiddle.com/#!3/5e555/1
Ste*_*art 21
鉴于普遍1 = true和0 = false,所有你需要做的是数列的数量,及演员boolean.
因此,您发布的代码只需要COUNT()添加一个函数:
SELECT CAST(COUNT(1) AS BIT) AS Expr1
FROM [User]
WHERE (UserID = 20070022)
Run Code Online (Sandbox Code Playgroud)
小智 8
select CAST(COUNT(*) AS BIT) FROM [User] WHERE (UserID = 20070022)
Run Code Online (Sandbox Code Playgroud)
如果count(*)= 0则返回false.如果count(*)> 0返回true.
使用“存在”返回0或1。
查询将类似于:
SELECT EXISTS(SELECT * FROM USER WHERE UserID = 20070022)
Run Code Online (Sandbox Code Playgroud)
我这样做:
SELECT 1 FROM [dbo].[User] WHERE UserID = 20070022
Run Code Online (Sandbox Code Playgroud)
将布尔值视为永远不能为空(至少在 .NET 中),它应该默认为 false 或者如果默认为 true,您可以自己将其设置为该值。然而 1 = true,所以 null = false,并且没有额外的语法。
注意:我使用 Dapper 作为我的微型软件,我想 ADO 应该也能正常工作。
| 归档时间: |
|
| 查看次数: |
254047 次 |
| 最近记录: |