You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSSQL中含emoji的nvarchar字段正确排序适用的排序规则选择

解决方案

方案1:全版本兼容方案

所有SQL Server 2008 R2及以上版本都可以使用该方案,通过调整排序优先级实现和Excel完全一致的排序效果:

SELECT Val
FROM (VALUES
    (N'⭐⭐⭐'),
    (N'⭐⭐⭐'),
    (N'🚩'),
    (N'⭐⭐'),
    (N'⭐⭐'),
    (N'🚩🚩'),
    (N'⭐'),
    (N'❗❗'),
    (N'❗❗'),
    (N'❗'),
    (N'❗'),
    (N'❗❗❗'),
    (N'❗❗❗'),
    (N'bb'),
    (N'ab'),
    (N'aa')
) AS A (Val)
ORDER BY 
    -- 优先将emoji等非基础拉丁字符排在前面
    CASE WHEN UNICODE(LEFT(Val,1)) < 256 THEN 2 ELSE 1 END,
    -- 同优先级内容按二进制排序,保证emoji按数量、码点升序,字母按字典序排序
    Val COLLATE Latin1_General_100_BIN2

方案2:高版本专用方案

如果你的SQL Server版本为2019及以上,可以直接使用支持最新Unicode标准的排序规则,无需额外逻辑判断:

SELECT Val
FROM (VALUES
    (N'⭐⭐⭐'),
    (N'⭐⭐⭐'),
    (N'🚩'),
    (N'⭐⭐'),
    (N'⭐⭐'),
    (N'🚩🚩'),
    (N'⭐'),
    (N'❗❗'),
    (N'❗❗'),
    (N'❗'),
    (N'❗'),
    (N'❗❗❗'),
    (N'❗❗❗'),
    (N'bb'),
    (N'ab'),
    (N'aa')
) AS A (Val)
ORDER BY Val COLLATE Latin1_General_140_CI_AS_SC_UTF8

该排序规则内置了emoji的排序权重,自动将emoji排在拉丁字母之前,排序逻辑和Excel完全对齐。


内容的提问来源于stack exchange,提问作者gsubiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:39:01