日期:2014-05-19  浏览次数:20599 次

|M| SQL查询词句 查询字段值是否有为"Yes"
如表
table  
id       ISOK
1         Yes
2         No
3         No

查询表table当ISOK有为 "YES "时返回   1   否为   0
也就是用Cmd..ExecuteScalar(....sql)
就是这里面的sql要怎么写

谢谢

------解决方案--------------------
table
id ISOK -- bit
1 1
2 0
3 0

bool字段应该用bit,不要用字符类型

SELECT * FORM [table] WHERE [ISOK]
------解决方案--------------------
bit 字段在程序里显示的是 True False
------解决方案--------------------
select id,case ISOK when 'YES ' then 1 else 0 end from tb
------解决方案--------------------
select id, '1 'from table where ISOK= 'yes '
union
select id, '0 'from table where ISOK= 'no '
------解决方案--------------------
使用CASE

Create Table TEST
(id Int,
ISOK Varchar(10))
Insert TEST Select 1, 'Yes '
Union All Select 2, 'No '
Union All Select 3, 'No '
GO
Select
id,
(Case When ISOK = 'Yes ' Then 1 Else 0 End) As ISOK
From TEST
GO
Drop Table TEST
--Result
/*
id ISOK
1 1
2 0
3 0
*/
------解决方案--------------------
Select id,
(Case When ISOK = 'Yes ' Then 1 Else 0 End) As ISOK
From TEST
------解决方案--------------------
select id,
ISOK=case ISOK when 'Yes ' then 1 when 'No ' then 0 end
from TEST
------解决方案--------------------
简单
------解决方案--------------------
bool字段用bit