0

以下のクエリはエラーを出しています:

SELECT DISTINCT dealer_state
FROM A
WHERE country='SS' 
UNION
SELECT DISTINCT dealer_state
FROM B
WHERE country='SS'
ORDER BY upper(dealer_state)

order by句でupper(column)を使用してソートする方法は?

4

2 に答える 2

2

Bクエリが与えている「エラー」が、期待どおりにレコードの中からレコードを並べ替えていないことであると仮定すると、クエリを並べ替えを実行するクエリのサブクエリにAする必要があります。UNION

SELECT dealer_state FROM (
    SELECT dealer_state FROM A WHERE country='SS' 
  UNION
    SELECT dealer_state FROM B WHERE country='SS'
) t
ORDER BY upper(dealer_state)
于 2012-04-25T10:36:07.123 に答える
1

との左端の式は一致する必要がありますDISTINCTORDER BY

最も簡単な方法は、次のようにすることです。

SELECT dds FROM (
    SELECT DISTINCT dealer_state AS dds FROM A
     WHERE country='SS'
    UNION
    SELECT DISTINCT dealer_state AS dds FROM B
     WHERE country='SS') AS d
ORDER BY upper(dds);
于 2012-04-25T10:38:16.623 に答える