1
我要排序該列包含數字和字母數字值的值。SQL混合數字和字母數字值的排序
但我得到了錯誤的排序(order by
)任何人都可以幫我解決這個問題嗎?
我使用SQL Server 2008 R2的,這裏的樣本:
DECLARE @TableTester TABLE (TESTER VARCHAR(50));
INSERT @TableTester VALUES
('1'),
('2'),
('3'),
('4'),
('10'),
('20'),
('5 ; 6'),
('122'),
('256 ; 78'),
('U1 ; U2'),
('U3 ; 7'),
('C1'),
('U4'),
('WC23'),
('WC214 ; U4'),
('U10');
SELECT Tester FROM @TableTester
ORDER BY CASE WHEN PATINDEX('%[0-9]%', Tester) > 0 THEN 0 ELSE 1 END,
CASE WHEN PATINDEX('%[0-9]%', Tester) > 0
THEN LEFT(Tester, PATINDEX('%[0-9]%', Tester)-1) ELSE Tester END
OUTPUT:
1
2
3
4
10
20
5 ; 6
122
256 ; 78
C1
U4
U10
U1 ; U2
U3 ; 7
WC23
WC214 ; U4
期望的結果:
1
2
3
4
5 ; 6
10
20
122
256 ; 78
C1
U1 ; U2
U3 ; 7
U4
U10
WC23
WC214 ; U4
可能的重複[SQL Server 2008 - 按數字字符串排序](http://stackoverflow.com/questions/20240313/sql-server-2008-order-by-strings-with-number-numerically) – hatchet
此外,如果重複問題的答案很難遵循,那麼有:http://www.essentialsql.com/use-sql-server-to-sort-alphanumeric-values/ – hatchet
@hatchet,但我有多個在我的列中分隔分號的值「;」 – itsMacyAnn