0
我是新來的SQL和運行陷入了困境。SQL - 排序功能爲A1,A2,A3,A4 ...... A101
如果我有一列A1,A2,A3 ...... A1000
當我爲了這個列,看來A1,A100,A2 ......我得到的邏輯原因。
嘗試:order by left(length(company.company_code),-1) ASC;
我嘗試上述嘗試切去A,但沒有運氣?
有什麼建議嗎?
我是新來的SQL和運行陷入了困境。SQL - 排序功能爲A1,A2,A3,A4 ...... A101
如果我有一列A1,A2,A3 ...... A1000
當我爲了這個列,看來A1,A100,A2 ......我得到的邏輯原因。
嘗試:order by left(length(company.company_code),-1) ASC;
我嘗試上述嘗試切去A,但沒有運氣?
有什麼建議嗎?
下面是一個簡單的方法:第一
order by length(company.company_code), company.company_code
此訂單由字符串的長度,然後將字符串的其餘部分。
你也可以做這樣的事情:
order by cast(substr(company.company_code, 2, 10) as int)
這是假設恰好有一個字母后不超過9位數字。
啊太棒了!所以它按照長度排序,即A1 = 2,而A100 = 3,然後是公司代碼。簡單但天才! – Phil
你使用哪個dbms?也許你可以使用數字敏感排序規則。 – jarlh
什麼數據庫系統(請[編輯]並添加一個合適的標籤) –
任何負數?總是一個A,沒有更多? – jarlh