首页 > 解决方案 > 控制在 SQL Server Order by 子句中指示排序的字符

问题描述

所以我有这个代码:

select *
from Names
where organization like 'Bank of America%'
order by organization

而且我的价值观看起来像这样,理想情况下会像这样排序:

美国银行

美国银行,阿拉​​巴马州

美国银行,NA

美国银行

美国银行南卡罗来纳

但是当我运行代码时,它的排序是这样的,说空格在逗号之前:

美国银行

美国银行

美国银行南卡罗来纳

美国银行,阿拉​​巴马州

美国银行,NA

我怎样才能得到这个正则表达式: [^az A-Z0-9] 它将把所有标点符号去掉到 order by 子句中,以便在排序时只考虑这些字符?

标签: sqlsql-serversortingsql-order-by

解决方案


如果只是一个逗号让你失望,你可以试试这个。此外,如果有几个字符,您可以嵌套替换。

select *
from Names
where organization like 'Bank of America%'
order by replace(organization,',','')

推荐阅读