【发布时间】:2017-12-15 16:43:20
【问题描述】:
我正在执行 2 个不同的 SQL 查询,对我来说它们应该产生相同的结果,但事实并非如此。第二个查询中的排序顺序发生了变化。只是想知道为什么会这样?
选择 *
来自 CTE
按服务日期订购
,服务时间
,案子
当 SortProfile = 'Y'
然后排序顺序1
ELSE 排序顺序2
结尾
,案子
当 SortProfile = 'N'
然后排序顺序2
ELSE 排序顺序 1
结尾
,价格 DESC
-------------------------------------------------- ----------------------------------
代码 日期 时间 价格 SortProfile SortOrder2 SortOrder1
-------------------------------------------------- ----------------------------------
38424 02/10/2015 13:12:00 0 N 14 9
38440 02/10/2015 13:12:00 0 N 14 9
41892 02/10/2015 13:12:00 0 N 25 13
38436 02/10/2015 13:12:00 0 N 25 11
18228 02/10/2015 13:12:00 0 N 25 15
选择 *
来自 CTE
按服务日期订购
,服务时间
,排序顺序2
,价格 DESC
-------------------------------------------------- ----------------------------------
代码 日期 时间 价格 SortProfile SortOrder2 SortOrder1
-------------------------------------------------- ----------------------------------
38424 02/10/2015 13:12:00 0 N 14 9
38440 02/10/2015 13:12:00 0 N 14 9
18228 02/10/2015 13:12:00 0 N 25 15
38436 02/10/2015 13:12:00 0 N 25 11
41892 02/10/2015 13:12:00 0 N 25 13
【问题讨论】:
-
它产生相同的结果,但顺序不同。你是说
To me they should produce the same results, but its not两者是不同的东西所以有什么问题.....'ordering` 或result问题? -
您对 CTE 的第二次查询的结果对我来说似乎很可疑,部分原因是
SortOrderTwo列的排序顺序没有意义,无论这些数据是按数字还是文本排序。 -
@Susang 我的意思是订购问题
-
@TimBiegeleisen 对不起,我的错。我现在已经编辑了问题
-
请提供一些测试数据,我无法用给定数据重现问题(假设它是测试数据)
标签: sql sql-server sql-server-2016