首页 > 技术文章 > SQL排序包含数字、字母和中文处理

xy0710 2019-08-22 15:48 原文

--模拟数据

SELECT * INTO #temp FROM 
(
  SELECT 1 AS id, 'C101' AS sort
  UNION ALL
  SELECT 2 AS id, 'B101' AS sort
  UNION ALL
  SELECT 3 AS id, '101'
  UNION ALL
  SELECT 4 AS id, '1101'
  UNION ALL
  SELECT 5 AS id, '201'
  UNION ALL
  SELECT 6 AS id, ''
  UNION ALL
  SELECT 7 AS id, ''
  UNION ALL
  SELECT 8 AS id, ''
  UNION ALL
  SELECT 9 AS id, ''
) S

--查询排序

SELECT * FROM #temp 
ORDER BY RIGHT(REPLICATE('0',10)+CAST(sort AS VARCHAR(10)),10) ASC

 

推荐阅读