2011-08-08 288 views
0

可能重複:
Sorting Alphanumeric field in SQL CE (Compact Edition) version 3.5字母數字排序爲SQL Server CE

如何使字母排序爲SQL Server CE?

存儲的值例如:

1,2,20,3,a1,a2,a20,a3 

輸出值:

1,2,3,20,a1,a2,a3,a20 

CE不支持IsNumeric功能,所以它不能被使用。 CE版本必須是3.5,因爲Visual Basic 2010不支持CE 4.0。

解決這樣不起作用:

SELECT * FROM tbl WHERE col LIKE '%[^0-9]%' 

這可能是因爲這些括號的,CE似乎忽略它們。

在SQL Server 2008中我用下面的字母排序:

SELECT Id FROM Test 
ORDER BY CASE 
WHEN IsNumeric(ID) = 1 THEN Right(Replicate('0',21) + ID, 20) 
WHEN IsNumeric(ID) = 0 THEN Left (ID + Replicate('',21),20) 
ELSE ID 
END 

這怎麼可能一樣可以在CE做了什麼?

回答

2

我得到這個工作的數值。對於包含字符的值,您可能需要將字符拆分以按字母順序排列以下數字。亞歷克斯K.引用的情況將爲此工作。

DECLARE @padding varchar(10) 
SELECT @padding = '000000000' 

select * 
from YourTable 
order by SUBSTRING(@padding, 0, 10 - LEN(yourValue)) + yourValue