尝试理解为什么此查询按降序生成结果
SELECT
DateDiff(minute, convert(datetime, SUBSTRING(MSH_07_DateTime, 1, 8) + ' ' + SUBSTRING(MSH_07_DateTime, 9, 2) + ':' + SUBSTRING(MSH_07_DateTime, 11, 2), 100), GetDate())
FROM
EPDBHL7.DBO.[HL7MSH]
WHERE
MessageStatus <> 'ok'
答案 0 :(得分:2)
除非您使用ORDER BY
,否则您无法保证任何结果订单。因此,您可能会根据数据的存储方式或计划程序如何使用索引
只需添加
where MessageStatus <> 'ok'
order by DateDiff(minute,convert(datetime, SUBSTRING ( MSH_07_DateTime ,1 , 8 ) + ' '+ SUBSTRING ( MSH_07_DateTime ,9 , 2 ) + ':'+ SUBSTRING ( MSH_07_DateTime ,11 , 2 ), 100)
or
order by 1
使用第一列订购
答案 1 :(得分:0)
如果您没有指定ORDER BY子句,那么您将无法指定获得结果的顺序。
如果您想依赖查询的顺序,请始终添加ORDER BY
答案 2 :(得分:0)
Select DateDiff(minute,convert(datetime, SUBSTRING ( MSH_07_DateTime ,1 , 8 ) + ' '+ SUBSTRING ( MSH_07_DateTime ,9 , 2 ) + ':'+ SUBSTRING ( MSH_07_DateTime ,11 , 2 ), 100) as date_diff,GetDate())
FROM EPDBHL7.DBO.[HL7MSH]
where MessageStatus <> 'ok'
order by date_diff DESC
答案 3 :(得分:0)
除非您使用ORDER BY,否则您将获得物理存储方式的结果。它可能是完全正确的顺序,但不是真的,以编程方式排序。