gpt4 book ai didi

.net - Linq to SQL - 如何将数字排序为字符串?

转载 作者:行者123 更新时间:2023-12-04 06:16:25 27 4
gpt4 key购买 nike

我有一个 SQL varchar 列,其值类似于 100、2000 和 S5000。我希望它们按数字而不是字母顺序排列。如果有一个字符串字符,我很高兴该字符被忽略或出现在排序顺序中的数值之后。

在 T-SQL 中,我可以这样做:

SELECT * FROM tbl
ORDER BY
CASE
WHEN ISNUMERIC(fld) = 1 THEN CONVERT(INT, fld)
ELSE 2147483647
END ASC,
fld ASC

我想知道在 Linq to SQL 中是否有办法做到这一点?

否则,我想我的替代方案是直接执行查询,或者创建一个计算列,其值如 00000100、00002000,000S5000 等。

编辑:我找到了一个解决方案,尽管我不确定它的效率如何。
from s in q
orderby (SqlMethods.Like(s.fld, "%[^0-9]%") ? Int32.MaxValue : Convert.ToInt32(s.fld)) ascending, s.fld ascending
select s;

最佳答案

我找到了一个解决方案,虽然我不确定它的效率如何。

from s in q orderby (SqlMethods.Like(s.fld, "%[^0-9]%") ? Int32.MaxValue : Convert.ToInt32(s.fld)) ascending, s.fld ascending select s; 

关于.net - Linq to SQL - 如何将数字排序为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com