web-dev-qa-db-ja.com

SQL ServerのVARCHAR列の最大長を取得します

SQL Serverテーブルの特定の列で最長のVARCHARを見つけたい。

次に例を示します。

ID = INT IDENTITY
DESC = VARCHAR(5000)

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

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

69
Milo LaMar

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

SELECT MAX(LEN(DESC)) FROM table_name;

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

134
aweis

mysql lenではない長さ

SELECT MAX(LENGTH(Desc)) FROM table_name
32
Abhishek Goel

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

select max(datalength(Desc)) from table_name
17
bevada

Oracleの場合、LENではなくLENGTHです

SELECT MAX(LENGTH(Desc)) FROM table_name

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

Word Descが例として使用されていた場合、誰もがそれを認識するわけではないが、多くの人がそれがDescendingの予約語であることを認識することに注意する必要があります。個人的には、これを使用して開始し、予約語のみであるため列名がどこに行くのかを把握しようとしました。それを理解するのに長い時間はかかりませんでしたが、実際の列名の代わりに何を使用するかを決めるときは、そのことを覚えておいてください。

8
codeguruinboise

テーブル内のレコードの最大カウントを与える

select max(len(Description))from Table_Name

カウントが大きいレコードを提供

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

希望は誰かを助ける。

5
stom
SELECT MAX(LEN(Desc)) as MaxLen FROM table
3
Milo LaMar
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を使用します。 詳細

1
MSTdev

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

select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) = 
 (select max(len([description]))
  FROM [database1].[dbo].[table1]
0
diyguy