在 T-SQL 查询的 SELECT 子句中使用比较运算符

发布于 2024-08-22 10:31:52 字数 254 浏览 17 评论 0原文

如何选择比较运算符的结果作为BIT类型的字段?

它如何在 C# 中工作:

bool isGreater = FieldA > FieldB;

它如何在 T-SQL 中不起作用:

SELECT (FieldA > FieldB) AS BIT FROM t

如何正确编写此类任务?

How to select a result of comparison operator as a field with type BIT?

How it does work in C#:

bool isGreater = FieldA > FieldB;

How it doesn't work in T-SQL:

SELECT (FieldA > FieldB) AS BIT FROM t

How to write such task properly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

套路撩心 2024-08-29 10:31:52

您应该使用 CASE 子句:

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]

You should use CASE clause:

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]
仲春光 2024-08-29 10:31:52
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

如果要返回 BIT,则需要转换(或转换)为位数据类型,否则 SQL 会将硬编码常量(1 或 0)解释为整数。

Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

If you want to return a BIT, then you need the convert (or cast) to a bit data type, otherwise, SQL would interpret the hard coded constant (1 or 0) as an integer.

浪漫之都 2024-08-29 10:31:52

您可以使用IIF函数。例如:

SELECT IIF(FieldA > FieldB, 1, 0) AS YourBitColumn FROM t

IFF 函数语法如下:

IIF( boolean_expression, true_value, false_value )

IFF 返回,如果 boolean_expression 为 true,则 true_value,否则false_value

有关 IFF 函数的更多信息:逻辑函数 - IIF (Transact-SQL)

You can use IIF function. For example:

SELECT IIF(FieldA > FieldB, 1, 0) AS YourBitColumn FROM t

IFF Function's syntax like as below:

IIF( boolean_expression, true_value, false_value )

IFF returns, If boolean_expression is true, then true_value, otherwise false_value

For more information about IFF function : Logical Functions - IIF (Transact-SQL)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文