106

VARCHARSQLServerテーブルの特定の列で最長のものを見つけたい。

次に例を示します。

ID = INT IDENTITY
DESC = VARCHAR(5000)

ID | Desc
---|-----
1  | a
2  | aaa
3  | aa

3を返すSQLは何ですか?最長値は3文字なので?

4

11 に答える 11

196

説明列の長さと最大値に組み込み関数を使用します。

SELECT MAX(LEN(DESC)) FROM table_name;

テーブルが非常に大きい場合、パフォーマンスの問題が発生する可能性があることに注意してください。

于 2012-03-06T21:35:45.147 に答える
49

MySQLの場合、それLENGTHはそうではありませんLEN

SELECT MAX(LENGTH(Desc)) FROM table_name
于 2014-07-04T09:24:05.083 に答える
19

気を付けて!!スペースがある場合、T-SQLのLENメソッドでは考慮されません。これをだまして使用させないでください

select max(datalength(Desc)) from table_name
于 2014-11-21T14:06:39.970 に答える
9

Oracleの場合は、LENではなくLENGTHでもあります

SELECT MAX(LENGTH(Desc)) FROM table_name

また、DESCは予約語です。多くの予約語は多くの状況で列名に対して機能しますが、そうすることは悪い習慣であり、状況によっては問題を引き起こす可能性があります。それらは理由のために予約されています。

Descという単語が単なる例として使用されている場合、誰もがそれを理解するわけではありませんが、多くの人はそれがDescendingの予約語であることを理解することに注意してください。個人的には、これを使って始めて、予約語しかなかったので、列名がどこにあるのかを調べようとしました。それを理解するのにそれほど時間はかかりませんでしたが、実際の列名の代わりに何を使用するかを決定するときは、このことを念頭に置いてください。

于 2015-01-28T20:42:55.697 に答える
7

テーブル内のレコードの最大数を示します

select max(len(Description))from Table_Name

より多くのカウントを持つレコードを提供します

select Description from Table_Name group by Description having max(len(Description)) >27

希望は誰かを助けます。

于 2016-06-22T13:59:41.703 に答える
6

SQL Server(SSMS)の場合

select MAX(LEN(ColumnName)) from table_name

これは文字数を返します。

 select MAX(DATALENGTH(ColumnName)) from table_name

これにより、使用/必要なバイト数が返されます。

誰かがvarcharを使用する場合は、を使用しますDATALENGTH詳細

于 2016-10-18T09:21:40.480 に答える
4
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
于 2018-12-28T13:20:40.843 に答える
3
SELECT MAX(LEN(Desc)) as MaxLen FROM table
于 2012-03-06T21:37:18.123 に答える
1

多くの場合、その列の長さが最も長い行を特定する必要があります。特に、たとえば、テーブル内の行の列の長さが他の行よりもはるかに長い理由を調べるためにトラブルシューティングを行う場合はそうです。このクエリは、行がどの行であるかを識別するために、行に識別子をリストするオプションを提供します。

select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) = 
 (select max(len([description]))
  FROM [database1].[dbo].[table1]
于 2019-06-04T19:41:33.090 に答える
1
select * from table name from where length( column name) =(select MAX(Length(column  name) from table name);  

私はサブクエリを使用していますが、その100%の作業はこれを試してください。

于 2021-10-26T05:19:20.593 に答える
0

IBM Db2の場合、LENではなくその長さ:

SELECT MAX(LENGTH(Desc)) FROM table_name;
于 2020-08-31T15:16:34.453 に答える