2017-10-19 91 views
0

在SQL Server中,如何強制排序值以某種邏輯顯示。據我所知,SQL首先放置字符,然後在對值進行排序時使用數字和字母。如何強制對某些邏輯中的值進行排序

現在,我需要在該信後加下劃線。例如, 我有OA_G值和範圍目前SQL放範圍之間OA_GMRIOL5之間

。但我需要強制它超出範圍。

+2

通過[排序規則加入它](https://docs.microsoft.com/en-us/sql/relational-databases/collat​​ions/collat​​ion-and-unicode-support#Collat​​ion_Defn) –

+0

顯示數據示例 – MelgoV

+1

問題的根源在於您在一個元組中有兩段數據。你的「組」表示你有兩條違反1NF的數據,並導致很多痛苦。最好的解決方案是將您的數據分成兩列。 –

回答

3

您的前提似乎不正確。無論SQL Server如何對字符串數據進行排序,順便說一句,數據庫的排序規範都會控制這些數據,如果要手動排序,您所尋找的結果將無法實現。即:

給出三個字符串,「MRI」,「OL5」和「OA_G」,按照字符串值升序排列這些字符串。

當然,這將按字符進行,比較每個字符從左到右。

由於「M」出現在「O」之前,排序集的第一個成員將是「MRI」。接下來,比較「OL5」和「OA_G」。字母「O」是一樣的,所以請檢查下一個位置。 「L」大於「A」,因爲它是字母表中的第11個字符,而「A」是第一個字符,所以下一個成員將是「OA_G」,離開「OL5」作爲最後一個成員。

有沒有SQL Server整理順序,這將使評估給你你正在尋找的結果。

0

如果數據部分是像MRIOL5OA_G等,都是常數或很少變化,可以作出這樣

Part | Priority 
MRI  | 1 
OL5  | 2 
OA_G | 3 

一些表與表和ORDER BY Priority

相關問題