1

これは postgres 8.4 では機能しません:

SELECT DISTINCT col1 FROM mytable
  ORDER BY UPPER(col1);

しかし、これは機能します:

SELECT DISTINCT col1 FROM mytable
  ORDER BY col1;

最初に DISTINCT を適用してから UPPER を適用するか、最初に UPPER に変換してから DISTINCT を適用するかは、データベースにとって少し混乱するかもしれません。適用する順序に基づいて、異なる結果が得られる場合があります。これに関してSQL標準が何かを言っているかどうかはわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

4

多くの SQL エンジンでは、選択されている列でのみ並べ替えることができます。したがって、選択にUPPER(col1)を追加する修正。

SELECT DISTINCT UPPER(col1), col1 FROM mytable ORDER BY UPPER(col1)
于 2012-04-09T21:13:39.340 に答える