sql-server – 带有表达式的SQL Server 2005 Order BY
发布时间:2021-01-12 13:25:54 所属栏目:MsSql教程 来源:网络整理
导读:是否有可能通过包含表达式的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子句中的数据类型匹配(或至少可隐式转换). (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |