已經看到了其他的答案。決定採取不同的路線。有點比較冗長,但是這個解決方案的好處是你最終會對實際的數字進行排序,並且首先對'J'數字進行排序。
SELECT
-- Get the first numeric component
CAST (
SUBSTRING(
productnumber,
CHARINDEX('J', productnumber, 1) + 1,
CHARINDEX('M', productnumber, 1) - CHARINDEX('J',productnumber, 1) - 1)
AS INT
) AS FirstSort,
-- Get the second numeric component
CAST (
SUBSTRING(
productnumber, CHARINDEX('M', productnumber, 1) + 1, LEN(productnumber))
AS INT
) AS SecondSort,
productnumber
FROM
productnumbers
ORDER BY
FirstSort,
SecondSort
DEMO
http://sqlfiddle.com/#!6/fd371/2
哪裏'J12M3'在第二個列表從何而來?這不在你的第一個列表中。 –