2011-01-23 30 views

答えて

1

あなたは、文字列は、あなたが探しているのテキストで始まる場合、その文字列の後に来る部分文字列を使用することをORDER句をお伝えしたいと思います。したがって、 "excl title a"はORDERプロセスに関する限り "title a"になります。

SELECT title 
FROM table_name 
ORDER BY 
IF (SUBSTRING(LOWER(title), 1, 5) = 'excl ', 
    SUBSTRING(title, 6), 
    title 
) 
+0

これは理にかなっていますが、それはうまく動作します。ありがとうございます。私はSUBSTRINGが今すぐ便利になるかもしれないいくつかの他のケースを考えることができます。 – Mint

2

編集:質問を読み違え、私は除くで始まる行がすべきと思いました最後に行くので、CASEはenobrevの答えのようにsubstring()を使う必要があります。

 
... 
ORDER BY 
    CASE 
     WHEN title_column LIKE 'excl%' THEN substring(title, 6) 
     ELSE title_column 
    END 
+1

私はこれが好きです。ニースと清潔。大規模なデータセットでは両方のソリューションがかなり遅いと私は想像しています。 – enobrev

関連する問題