sql - 特殊字符的 order by 规则是什么?

标签 sql sql-server

enter image description here

我使用 select pk_customer_no from customer order by pk_customer_no 对数据进行排序 带“-”的代码,没有分组并按字母排序,看来sql只是忽略它并按第三个字母排序。

如何按“-”排序?

最佳答案

排序时会忽略“-”字符。

如果您想将带有“-”的单词放在前面,可以通过将“-”替换为“0”(零)来使用 order。

select t.pk_customer_no as rep from ( 
   values ('YH'), ('YHC'), ('Z-CH'), ('Z-CHE'), ('ZCM'), ('Z-CP'), ('Z1'), ('ZHT'), ('ZLA'), ('Z-JP'), ('ZLENO') 
) as t (pk_customer_no)
order by replace(t.pk_customer_no, '-', '0')

如果您想将带有“-”的单词放在末尾,可以通过将“-”替换为“Z”来使用 order。

select t.pk_customer_no as rep from ( 
       values ('YH'), ('YHC'), ('Z-CH'), ('Z-CHE'), ('ZCM'), ('Z-CP'), ('Z1'), ('ZHT'), ('ZLA'), ('Z-JP'), ('ZLENO') 
) as t (pk_customer_no)
order by replace(t.pk_customer_no, '-', 'Z')

关于sql - 特殊字符的 order by 规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72477055/

相关文章:

php - SQL 语法错误。看起来我想念什么

sql - 数据库错误-当前不支持RIGHT和FULL OUTER JOIN

sql - 为每个交易品种选择前 2 个价格

c# - 如何防止对文本框的SQL注入(inject)攻击?

sql-server - 在 Sql Server Profiler 中更改应用程序名称

mysql - 对具有联合函数的两个查询使用公共(public)顺序

mysql - 如何列出一个城市的所有地区每月显示的利润

sql-server - T-SQL 中的空语句

sql-server - 使用 Microsoft 同步框架 2.1 更新架构更改

sql-server - 如何将 .gdb 数据库转换为 SQL Server