私が言うなら:
select max(length(Name))
from my_table
結果は18になりますが、関連するデータも必要です。だから私が言うなら:
select max(length(Name)),
Name
from my_table
...それは動作しません。私はそれを理解することができないと思う自己結合があるはずです。
誰かが私に手がかりを提供できますか?
私が言うなら:
select max(length(Name))
from my_table
結果は18になりますが、関連するデータも必要です。だから私が言うなら:
select max(length(Name)),
Name
from my_table
...それは動作しません。私はそれを理解することができないと思う自己結合があるはずです。
誰かが私に手がかりを提供できますか?
回答:
編集済み、不明なmax()値に対して機能します:
select name, length( name )
from my_table
where length( name ) = ( select max( length( name ) ) from my_table );
nameは18のmaxlenghtを持っている懸念を望んでいます
select max(length(Name)) as num1,Name from my_table group by Name having num1 = 18最初のクエリから最大が18であることがわかっているので、このように欲しいものを何とか取得できました。しかし、これを1つのクエリに組み合わせるにはどうすればよいでしょうか。
わかりました。何を使用しているかわかりません(MySQL、SLQサーバー、Oracle、MS Accessなど)。ただし、以下のコードを試すことができます。W3SchoolサンプルDBで動作します。ここで これを試してください:
SELECT city, max(length(city)) FROM Customers;
使用する:
SELECT mt.name
FROM MY_TABLE mt
GROUP BY mt.name
HAVING MAX(LENGTH(mt.name)) = 18
...事前に長さを知っていると仮定します。そうでない場合は、以下を使用してください。
SELECT mt.name
FROM MY_TABLE mt
JOIN (SELECT MAX(LENGTH(x.name) AS max_length
FROM MY_TABLE x) y ON y.max_length = LENGTH(mt.name)
MySQL-length()とchar_length()で提案されているように、LENGTH()の代わりにCHAR_LENGTH()を使用し ます。
SELECT name、CHAR_LENGTH(name)AS mlen FROM mytable ORDER BY mlen DESC LIMIT 1