SQL SELECT - 返回布尔根据病情

基本上我试图做到这一点

select u.Hostname, u.IsCustom, (u.Status = 5) as IsActive from SiteUrlMappings u

其中5是代表一个“有效”网址一个int。

当然,这是不行的,而我的SQL是生锈的像个老螺丝刀。

--------------解决方案-------------

你并不需要一个CASE表达式
只是如何利用bit工作:强制转换为位时,所有非零值给出1

select u.Hostname, u.IsCustom, ~CAST((u.Status-5) as bit) as IsActive
from SiteUrlMappings u

SQL Server不具有布尔数据类型。 最接近的是bit

SELECT u.Hostname,
u.IsCustom,
CAST(CASE
WHEN u.Status = 5 THEN 1
ELSE 0
END AS BIT) AS IsActive
FROM SiteUrlMappings u

你需要一个case陈述,就像这样:

select u.Hostname,
u.IsCustom,
convert(bit, case when u.Status = 5 then 1 else 0 end) as IsActive

from SiteUrlMappings u

bit是接近真实的布尔值,你可以在SQL Server中得到

尝试这个:

select u.Hostname, u.IsCustom, CASE WHEN u.Status = 5 THEN 1 ELSE 0 END as IsActive
from SiteUrlMappings u

您可以使用CASE ...当不是语法。

分类:SQL服务器 时间:2015-03-15 人气:3
本文关键词: SQL Server中,TSQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.272 (s). 10 q(s)