当前位置:  开发笔记 > 数据库 > 正文

将nvarchar列排序为整数

如何解决《将nvarchar列排序为整数》经验,为你挑选了1个好方法。

我有混合数据i nvarchar列(单词和数字).这是以数字顺序对此列中的数据进行排序的最快方法.

结果示例:

1

2

3

...

10

11

...

AAAA

AAAB

b

BA

BA

...

angry person.. 11

用这个:

ORDER BY
    CASE WHEN ISNUMERIC(column) = 1 THEN 0 ELSE 1 END,
    CASE WHEN ISNUMERIC(column) = 1 THEN CAST(column AS INT) ELSE 0 END,
    column

这按预期工作.


注意:你说最快的方式.这个sql对我来说很快就会产生,但是执行计划显示了一个表扫描,然后是一个标量计算.这可能会产生一个临时结果,其中包含该列的所有值以及ISNUMERIC结果的一些额外临时列.它可能没有快速执行.



1> angry person..:

用这个:

ORDER BY
    CASE WHEN ISNUMERIC(column) = 1 THEN 0 ELSE 1 END,
    CASE WHEN ISNUMERIC(column) = 1 THEN CAST(column AS INT) ELSE 0 END,
    column

这按预期工作.


注意:你说最快的方式.这个sql对我来说很快就会产生,但是执行计划显示了一个表扫描,然后是一个标量计算.这可能会产生一个临时结果,其中包含该列的所有值以及ISNUMERIC结果的一些额外临时列.它可能没有快速执行.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有