1

都市テーブルで最長と最短の都市名の長さを取得しようとしていますこれは私が使用しようとしているコードです

SELECT Name, char_length(Name) from city WHERE char_length(Name)=(SELECT MAX(char_length(name)), MIN(char_length(name))from city);

しかし、エラーが発生します I can only have one operand... MAX または MIN のいずれかを取り除くと機能します。1 つのクエリで実行するには両方が必要です

4

3 に答える 3

2

=1 つの値を 2 つの列を返すサブクエリと比較するために使用することはできません。

これを試して:

SELECT c.Name, char_length(c.Name) FROM city AS c
JOIN (SELECT MAX(char_length(name)) AS max, MIN(char_length(name)) AS min FROM city) AS t
  ON char_length(c.Name) IN (t.max, t.min);
于 2013-09-17T01:08:14.977 に答える
0

1 つのオプション:

(select name, char_length(name) len from city
order by len asc
limit 1)
union
(select name, char_length(name) len from city
order by len desc
limit 1)

別のオプション:

select name, char_length(name) len from city
where char_length(name) in (
  select max(char_length(name)) from city
  union
  select min(char_length(name)) from city
)
于 2013-09-17T01:21:24.073 に答える