SQL [转换为bool] [英] SQL [Conversion to bool]
本文介绍了SQL [转换为bool]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C ++ Builder ADOQuery SQLServer
我使用的存储过程与此选择
I'm using a stored procedure with this select
SELECT Name,
COALESCE(
(
SELECT TOP 1 0
FROM TbUserParam
WHERE TbUserParam.ID_User = @ID_User
AND TbUserParam.ID_Param = CfgListParIzm.ID_ListParIzm
), 1) Visi
FROM CfgListParIzm
WHERE CfgListParIzm.ID_ListGroupParIzm = @ID_ListGroupParIzm
Stuff about this query
在我使用SQL字符串的查询中:
in my query with SQL string :
FlowClientHardQ :ID_User, :ID_ListGroupParIzm
然后DataSource和DBGrid与CheckBox字段。 来源
then DataSource and DBGrid with CheckBox fields. Source
所以我需要一个bool(或位)字段从我的ADO查询。
如何/在哪里可以转换?
So I need a bool (or bit) field there from my ADO Query. How / Where can I convert it ?
谢谢。
推荐答案
投放到位?
SELECT Name,
CAST(
COALESCE(
(
SELECT TOP 1 0
FROM TbUserParam
WHERE TbUserParam.ID_User = @ID_User
AND TbUserParam.ID_Param = CfgListParIzm.ID_ListParIzm
), 1) as bit) Visi
FROM CfgListParIzm
WHERE CfgListParIzm.ID_ListGroupParIzm = @ID_ListGroupParIzm
您不必重写查询以避免子查询:
But can you not rewrite the query thus to avoid the subquery:
SELECT
C.Name,
CAST(CASE WHEN T2.ID_Param IS NULL THEN 0 ELSE 1 END as bit) AS Visi
FROM
CfgListParIzm C
LEFT JOIN
(
SELECT
T.ID_Param
FROM
TbUserParam T
WHERE
T.ID_User = @ID_User
) T2 On T2.ID_Param = C.ID_ListParIzm
WHERE
C.ID_ListGroupParIzm = @ID_ListGroupParIzm
这篇关于SQL [转换为bool]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文