加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 带有表达式的SQL Server 2005 Order BY

发布时间:2021-01-12 10:52:48 所属栏目:编程 来源:网络整理
导读:是否有也许通过包括表达式的ORDER子句对功效举办排序,譬喻 SELECT colX0 FROM tbp_name ORDER BY (colX1 IS NOT NULL) 照旧一个更伟大的表达? 更新: 同时我发明有也许办理上述题目: ORDER BY (case WHEN colX1 IS NULL THEN 1 ELSE 0 END ) ASC 但题目如故

是否有也许通过包括表达式的ORDER子句对功效举办排序,譬喻

SELECT colX0 FROM tbp_name ORDER BY (colX1 IS NOT NULL)

照旧一个更伟大的表达?

更新:

同时我发明有也许办理上述题目:

ORDER BY (case WHEN colX1 IS NULL THEN 1 ELSE 0 END ) ASC

但题目如故存在,假若有也许通过表达直接呼吁.

办理要领

不,SQL Server不支持将表达式直接转换为true / false.

恕我直言,一个缘故起因是3值逻辑.这有3个功效,而不是2,任何一列都是NULL. NULL凡是是SQL中的第一个,始终是Server,但可以在其他RDBMS中最后指定.

ORDER BY (colX1 = colX2)

行使CASE可以减轻这种影响并消除歧义

ORDER BY
   CASE
       WHEN colX1 = colX2 THEN 1
       WHEN colX1 <> colX2 THEN 2
       ELSE 3 NULL case
   END

您必需按照更新行使CASE,并确保WHEN子句中的数据范例匹配(或至少可隐式转换).

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读