可能重复:
Sorting Alphanumeric field in SQL CE (Compact Edition) version 3.5
如何为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中完成同样的工作?
答案 0 :(得分:2)
我让这个用于数值。对于带字符的值,您可能需要将字符拆分为按字母顺序对以下数字进行排序。 Alex K.引用的案例将适用于此。
DECLARE @padding varchar(10)
SELECT @padding = '000000000'
select *
from YourTable
order by SUBSTRING(@padding, 0, 10 - LEN(yourValue)) + yourValue