中最接近真实的布尔值
我要做的就是
select u.Hostname, u.IsCustom, (u.Status = 5) as IsActive
from SiteUrlMappings u
其中5为int型,表示"Active"url。
当然这行不通,我的sql就像一把旧螺丝刀一样生锈了。
不需要CASE表达式
只要利用bit
的工作原理:当转换为位
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…