我怎么能按顺序返回这些:
1: aaaa
2: bbbb
3: the cccc
4: dddd
忽略领先的'the'
目前正在使用。
select * from houses order by name asc
并按此顺序返回。
1: aaaa
2: bbbb
3: dddd
4: the cccc
由于
答案 0 :(得分:2)
更正确但答案更慢的答案是:
ORDER BY CASE WHEN SUBSTR(name, 1, 4) = 'the ' THEN SUBSTR(name, 5) ELSE name END;
答案 1 :(得分:1)
如果您想删除订单的the
,可以使用:
select id, name
from yourtable
order by replace(name, 'the ', '')
或者:
select id, name
from yourtable
order by ltrim(replace(name, 'the', ''))
甚至可以使用以下内容:
select id, name
from yourtable
order by
case
when substring(name, 1, 4) = 'the '
then substring(name, 5)
else name end
答案 2 :(得分:-1)
嘿Man它的升序意味着 a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
。因为d在t之前出现,这就是为什么它首先回应它! ORDER BY只检查字符串的第一个字母,然后对它们进行排序。如果你想让他们订购如下:
1:aaaaa
2:bbbbb
3:ccccc
4:ddddd
然后根据您的喜好再创建一个具有整数类型的id的列,并为其添加自动增量属性,然后按升序排序!