VARCHAR
SQLServerテーブルの特定の列で最長のものを見つけたい。
次に例を示します。
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
3を返すSQLは何ですか?最長値は3文字なので?
VARCHAR
SQLServerテーブルの特定の列で最長のものを見つけたい。
次に例を示します。
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
3を返すSQLは何ですか?最長値は3文字なので?
説明列の長さと最大値に組み込み関数を使用します。
SELECT MAX(LEN(DESC)) FROM table_name;
テーブルが非常に大きい場合、パフォーマンスの問題が発生する可能性があることに注意してください。
MySQLの場合、それLENGTH
はそうではありませんLEN
:
SELECT MAX(LENGTH(Desc)) FROM table_name
気を付けて!!スペースがある場合、T-SQLのLENメソッドでは考慮されません。これをだまして使用させないでください
select max(datalength(Desc)) from table_name
Oracleの場合は、LENではなくLENGTHでもあります
SELECT MAX(LENGTH(Desc)) FROM table_name
また、DESCは予約語です。多くの予約語は多くの状況で列名に対して機能しますが、そうすることは悪い習慣であり、状況によっては問題を引き起こす可能性があります。それらは理由のために予約されています。
Descという単語が単なる例として使用されている場合、誰もがそれを理解するわけではありませんが、多くの人はそれがDescendingの予約語であることを理解することに注意してください。個人的には、これを使って始めて、予約語しかなかったので、列名がどこにあるのかを調べようとしました。それを理解するのにそれほど時間はかかりませんでしたが、実際の列名の代わりに何を使用するかを決定するときは、このことを念頭に置いてください。
テーブル内のレコードの最大数を示します
select max(len(Description))from Table_Name
より多くのカウントを持つレコードを提供します
select Description from Table_Name group by Description having max(len(Description)) >27
希望は誰かを助けます。
SQL Server(SSMS)の場合
select MAX(LEN(ColumnName)) from table_name
これは文字数を返します。
select MAX(DATALENGTH(ColumnName)) from table_name
これにより、使用/必要なバイト数が返されます。
誰かがvarcharを使用する場合は、を使用しますDATALENGTH
。詳細
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
SELECT MAX(LEN(Desc)) as MaxLen FROM table
多くの場合、その列の長さが最も長い行を特定する必要があります。特に、たとえば、テーブル内の行の列の長さが他の行よりもはるかに長い理由を調べるためにトラブルシューティングを行う場合はそうです。このクエリは、行がどの行であるかを識別するために、行に識別子をリストするオプションを提供します。
select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) =
(select max(len([description]))
FROM [database1].[dbo].[table1]
select * from table name from where length( column name) =(select MAX(Length(column name) from table name);
私はサブクエリを使用していますが、その100%の作業はこれを試してください。
IBM Db2の場合、LENではなくその長さ:
SELECT MAX(LENGTH(Desc)) FROM table_name;