I need to order string containing this format
號碼。(點)數目。(點)數目。(點)數等多層次因此字符串可以是順序SQL服務器字符串
1.1。 1.1.1.1.5 或 1.1.1.1.1.1.1.1.1.1.1.1.1.1 ...... 9 或或 5.5.6.7.8.1.2.3454.2.11213
我已經嘗試過投射,但我需要的是普通表格表達以外的解決方案,因爲它非常慢。
有沒有辦法訂購此類似號碼,10是下一個9,而不是1,謝謝
I need to order string containing this format
號碼。(點)數目。(點)數目。(點)數等多層次因此字符串可以是順序SQL服務器字符串
1.1。 1.1.1.1.5 或 1.1.1.1.1.1.1.1.1.1.1.1.1.1 ...... 9 或或 5.5.6.7.8.1.2.3454.2.11213
我已經嘗試過投射,但我需要的是普通表格表達以外的解決方案,因爲它非常慢。
有沒有辦法訂購此類似號碼,10是下一個9,而不是1,謝謝
這工作,有幾個假設,其中之一是第一個數字始終是一個int。
insert into @t values ('1.0'),
('10.2.44.2'),
('5.2.523.242'),
('4.23.5511'),
('0.9.4343.1.6.2'),
('99.245.52371.0.1'),
('1.1.1.1.1.1.5'),
('1.1.1.1.1.1.1.1.1.1.1.1.1.1......9'),
('5.5'),
('5.5.6.7.8.1.2.3454.2.11213')
SELECT CAST(SUBSTRING(c, 0, COALESCE(CHARINDEX('.',c, 0), c)) AS INT) AS FirstDigit, c
from @t
order by FirstDigit
結果:
FirstDigit c
0 0.9.4343.1.6.2
1 1.0
1 1.1.1.1.1.1.5
1 1.1.1.1.1.1.1.1.1.1.1.1.1.1......9
4 4.23.5511
5 5.2.523.242
5 5.5
5 5.5.6.7.8.1.2.3454.2.11213
10 10.2.44.2
99 99.245.52371.0.1
不應該「1.1。 1.1.1.1.1.1.1.1.1.1.1.1 ...... 9「1.1.1.1.1.1.5之前」? –
Lynn,我不知道 - 問題中沒有足夠的信息 - 那些點可能是橢圓或數字的一部分 該值與其他值不同如果多餘的「。」字符被刪除,它會以正確的順序出現在列表中 並假設它是零件的數字,那麼就需要指導如何對數字進行排序 - 它是在數字之前還是之後出現? –
在字母數字排序方面,我你以爲你只想看看同等的位置。在這種情況下,相關文本是「1.1.1.1.1.1.1」與「1.1.1.1.1.1.5」。不確定這是否有其他字符。但是,就像你說的那樣,這個問題確實需要更多細節。 –
因此,這些字符串不是「數字」本身,而是更類似於軟件版本號? –
每個號碼的最大位數是多少? – wdosanjos
你說你已經用CAST試過了CTE;我們可以看到這些代碼嗎? –