0

これらをこの順序で返すにはどうすればよいですか?

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

ありがとう

4

3 に答える 3

2

より正確ですが、より遅い答えは次のとおりです。

ORDER BY CASE WHEN SUBSTR(name, 1, 4) = 'the ' THEN SUBSTR(name, 5) ELSE name END;
于 2012-12-14T10:48:41.330 に答える
1

それまでに注文のを削除したい場合は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を参照してください

于 2012-12-14T10:34:58.733 に答える
-1

ねえ男その昇順はを意味し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を追加して、昇順で並べ替えます。

于 2012-12-14T10:32:44.500 に答える