これらをこの順序で返すにはどうすればよいですか?
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
ありがとう
これらをこの順序で返すにはどうすればよいですか?
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
ありがとう
より正確ですが、より遅い答えは次のとおりです。
ORDER BY CASE WHEN SUBSTR(name, 1, 4) = 'the ' THEN SUBSTR(name, 5) ELSE name END;
それまでに注文のを削除したい場合はthe
、次を使用できます。
select id, name
from yourtable
order by replace(name, 'the ', '')
SQL FiddlewithDemoを参照してください
または:
select id, name
from yourtable
order by ltrim(replace(name, 'the', ''))
SQL FiddlewithDemoを参照してください
または、次のように使用することもできます。
select id, name
from yourtable
order by
case
when substring(name, 1, 4) = 'the '
then substring(name, 5)
else name end
SQL FiddlewithDemoを参照してください
ねえ男その昇順はを意味し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:aaaaaa
2:bbbbb
3:ccccc
4:ddddd
次に、整数型のidの列をもう1つ作成し、好みに応じて値を設定し、それにAuto Increment Attributeを追加して、昇順で並べ替えます。