gpt4 book ai didi

sql - SQL中如何对varchar进行排序?

转载 作者:行者123 更新时间:2023-12-02 09:43:46 29 4
gpt4 key购买 nike

在 SQL(使用 Access)中,我在一列中有以下值:

已批准,第 2 点,...,第 10 点,第 11 点,...,第 21 点

现在,如果我使用按 column asc 排序,则第 11 点会出现在第 2 点之前。我希望第 2 点、第 3 点出现在第 11 点之前。该怎么做?

最佳答案

如果您知道它们始终采用“名称编号”的形式,您可以做的就是添加两列,它们是原始列的拆分,然后对它们进行排序而不是原来的

例如,

SELECT foo2.foo, 
Left(foo,InStr(foo," ")) AS foo_name,
CLng(IIf(InStr(foo," ")>0, Right(nz(foo,0),
Len(nz(foo,0))-InStr(nz(foo,0)," ")),"0")) AS foo_number
FROM foo2
ORDER BY Left(foo,InStr(foo," ")),
CLng(IIf(InStr(foo," ")>0, Right(nz(foo,0),
Len(nz(foo,0))-InStr(nz(foo,0)," ")),"0"));

(编码并测试)

这应该给你这样的结果:

foo       foo_name  foo_number
--- -------- ----------
Approved Approved
Point 2 Point 2
Point 10 Point 10
Point 11 Point 11
Point 21 Point 21

排序将适用于 foo_number 部分。

关于sql - SQL中如何对varchar进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125544/

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