SQL [转换为bool] [英] SQL [Conversion to bool]

查看:990
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆