在 T-SQL 查询的 SELECT 子句中使用比较运算符
如何选择比较运算符的结果作为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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该使用 CASE 子句:
You should use CASE clause:
如果要返回 BIT,则需要转换(或转换)为位数据类型,否则 SQL 会将硬编码常量(1 或 0)解释为整数。
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.
您可以使用
IIF
函数。例如:IFF
函数语法如下:IFF
返回,如果boolean_expression
为 true,则true_value
,否则false_value
有关
IFF
函数的更多信息:逻辑函数 - IIF (Transact-SQL)You can use
IIF
function. For example:IFF
Function's syntax like as below:IFF
returns, Ifboolean_expression
is true, thentrue_value
, otherwisefalse_value
For more information about
IFF
function : Logical Functions - IIF (Transact-SQL)