如果我有一個1,2,3,4,5,K
的列表,我希望它的訂購像K,1,2,3,4,5
我怎麼能在SQL中做到這一點?這些值是SQL表中唯一的值。這是在MySQL中,但也歡迎其他數據庫。SQL排序字符串和數字
2
A
回答
5
有mysql中沒有整數dection功能,所以你必須做這樣的事情。假設你的列是VARCHAR或類似的,你可以簡單的東西像這樣
ORDER BY CASE WHEN field REGEXP '^-?[0-9]+$' THEN field ELSE '0'+field END
+0
不能將它轉換爲帶符號的int嗎? –
+0
當然,但是如果失敗了,你會得到一個null。這一步就完成了 – dfb
1
在Oracle中,你可以這樣做:
ORDER BY CASE WHEN column='K' THEN 0 ELSE TO_NUMBER(column) END
其他系統可能也有類似的結構。
1
如果您需要對SELECT的結果進行排序,那麼您可以在ORDER BY語句中聲明您的自定義排序規則。
下面是一個例子:http://www.emadibrahim.com/2007/05/25/custom-sort-order-in-a-sql-statement/
的想法是你自己的優先級分配給每個項目。
請記住,它可能依賴於實際的SQL服務器。
0
這裏有一個在SQLite的工作:
select v1.* from (
select t3.*, (case when value = 'K' then '0' else value end) normalized_val
from t3) v1
order by v1.normalized_val;
相關問題
- 1. SQL排序數字和字符串
- 2. SQL Oracle排序字符串(數字)和(帶數字的字母)
- 3. SQL字符串排序
- 4. SQL按字符串排序
- 5. 排序字符串數字
- 6. SQL Server:字符串轉換數字和排序問題
- 7. 排序字符串和刪除字符
- 8. SQL排序和連字符
- 9. Python字符串和排序?
- 10. 字符串按字符數排序
- 11. Groovy中用字母和數字排序的數字字符串
- 12. 在Transact SQL中數字排序(以字符串排序而不是Int排序)
- 13. 如何排序數字字符串和文字字符串數組
- 14. 排序字符串數組
- 15. 排序字符串數組
- 16. 排序字符串數組
- 17. 排序字符串數組
- 18. 排序字符串數據
- 19. 排序字符串數組
- 20. 拆分和排序字符串數組
- 21. 合併和排序字符串數組
- 22. 排序字符串
- 23. bash:用數字排序字符串
- 24. 排序字符串以數字正確
- 25. 排序與字符串包含數字
- 26. MySQL。數字按字符串排序ID
- 27. 排序字符串+數字在Perl
- 28. 從文件數字排序字符串
- 29. 在字符串數組中排序字
- 30. 在SQL中的字符串排序
目前還不清楚是否這些表中的行/結果集,或逗號分隔值的單個字符串要在其中的順序值改變了。 – Hammerite
你的排序規則是什麼?數字前的字母? –
什麼sql方言? – dfb