SQL Serverテーブルの特定の列で最長のVARCHAR
を見つけたい。
次に例を示します。
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 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は予約語です。多くの予約語は多くの状況で列名に対して機能しますが、そうすることは悪い習慣であり、状況によっては問題を引き起こす可能性があります。理由のために予約されています。
Word Descが例として使用されていた場合、誰もがそれを認識するわけではないが、多くの人がそれがDescendingの予約語であることを認識することに注意する必要があります。個人的には、これを使用して開始し、予約語のみであるため列名がどこに行くのかを把握しようとしました。それを理解するのに長い時間はかかりませんでしたが、実際の列名の代わりに何を使用するかを決めるときは、そのことを覚えておいてください。
テーブル内のレコードの最大カウントを与える
select max(len(Description))from Table_Name
カウントが大きいレコードを提供
select Description from Table_Name group by Description having max(len(Description)) >27
希望は誰かを助ける。
SELECT MAX(LEN(Desc)) as MaxLen FROM table
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
SQLサーバー(SSMS)の場合
select MAX(LEN(ColumnName)) from table_name
これは文字数を返します。
select MAX(DATALENGTH(ColumnName)) from table_name
これは使用/必要なバイト数を返します。
誰かがvarcharを使用する場合は、DATALENGTH
を使用します。 詳細
多くの場合、特にテーブルの行の列の長さが他の行よりもはるかに長い理由を見つけるためにトラブルシューティングを行う場合は、最も長い長さの列を持つ行を特定する必要があります。このクエリは、どの行であるかを識別するために、行に識別子をリストするオプションを提供します。
select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) =
(select max(len([description]))
FROM [database1].[dbo].[table1]