我有这条SQL语句,根据它们的排序行change_order
和change_id
。SQL Server Sorting Int列错误
我的发言是这样的:
select *
from change_dtl_from2
where chnfr_hdrno = 'CH000009'
order by
case
when chnorder is null
then 1
else 0
end asc, change_id asc
哪里chnfr_hdrno
为文档编号,chnorder
为change_order
,change_id
是每行的唯一关键。
如果我执行该语句,结果会是这样:
正如你所看到的,一行5 chnorder
值在最顶端,其中chnorder
设置其按排序我不知道我在做什么或错在哪里。
默认值chnorder
为空,并且是int
列。这就是为什么我很困惑,因为每当我添加一个新的行时,新的一个将是最重要的。我希望你们都能帮助我。 :)
当递增排序,0变得目前还不清楚你期待看到什么1之前。对于显示'chnorder'的所有行都已设置,因此它们将全部按0排序,然后是'change_id'中的值。 – CodeCaster
您当前的输出是正确的和预期的。 –
由于样本数据中'chnorder'的所有值都是NOT NULL,那么整个数据集就会被'change_id'排序 - 并且它被** change_id正确排序**所以问题是什么? –