亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 C# 對 SQL Server 中的字母數字列進行排序?

如何使用 C# 對 SQL Server 中的字母數字列進行排序?

C#
牛魔王的故事 2022-12-24 10:05:18
我有一些數據存儲在 SQL Server 中,如下所示:A1A2A31A2A3A怎么排序呢?我試過這個查詢:select namefrom Analyze_Tablegroup by nameorder by CONVERT(INT, LEFT(name, PATINDEX('%[^0-9]%', name+'z')-1)),name但這僅按第一個數字和字母順序排序,而不按字母順序和數字值排序
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

我試圖只對名稱的數字部分進行排序,不包括第一個或最后一個字符。然后如果有 2 個相同的數字,他們將重新排序,例如 23 和 23A。這應該會給你你正在尋找的輸出


select name

from Analyze_Table

group by name

order by case 

  when isnumeric(name) = 1 then cast(name as int)

  when isnumeric(left(name, 1)) = 0 and isnumeric(right(name, 1)) = 0 then cast(substring(name, 2, len(name)-2) as int)

  when isnumeric(left(name, 1)) = 0 then cast(right(name, len(name)-1) as int)

  when isnumeric(right(name, 1)) = 0 then cast(left(name, len(name)-1) as int) end

  ,name


查看完整回答
反對 回復 2022-12-24
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

如果您想要以數字開頭的名稱,那么這就是您的意思嗎?

order by (case when name like '[0-9]%' then 1 else 2 end),
         name


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號