Ich möchte den längsten VARCHAR
in einer bestimmten Spalte einer SQL Server-Tabelle finden.
Hier ist ein Beispiel:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Was ist die SQL, um 3 zurückzugeben? Da ist der längste Wert 3 Zeichen?
Verwenden Sie die integrierten Funktionen für Länge und Maximum in der Beschreibungsspalte:
SELECT MAX(LEN(DESC)) FROM table_name;
Wenn Ihre Tabelle sehr groß ist, kann es zu Leistungsproblemen kommen.
für mysql seine Länge nicht len
SELECT MAX(LENGTH(Desc)) FROM table_name
Achtung!! Wenn Leerzeichen vorhanden sind, werden sie von der LEN-Methode in T-SQL nicht berücksichtigt. Lass dich nicht von diesem Trick und benutzen
select max(datalength(Desc)) from table_name
Für Oracle ist es auch LENGTH anstelle von LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
Desc ist auch ein reserviertes Wort. Obwohl viele reservierte Wörter in vielen Fällen noch für Spaltennamen funktionieren, ist dies eine schlechte Praxis und kann unter Umständen zu Problemen führen. Sie sind aus einem bestimmten Grund reserviert.
Wenn das Wort Desc nur als Beispiel verwendet wurde, sollte beachtet werden, dass nicht jeder das erkennen wird, aber viele werden erkennen, dass es ein reserviertes Wort für das Absteigen ist. Ich persönlich habe damit angefangen, dieses zu verwenden und dann herauszufinden, wo der Spaltenname hinging, weil alles, was ich hatte, reservierte Wörter war. Es dauerte nicht lange, um es herauszufinden, aber denken Sie daran, wenn Sie entscheiden, was Sie als Spaltennamen verwenden möchten.
Gibt die maximale Anzahl der Datensätze in der Tabelle an
select max(len(Description))from Table_Name
Rekord mit höherer Zählung
select Description from Table_Name group by Description having max(len(Description)) >27
Hoffnung hilft jemandem.
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
Für SQL Server (SSMS)
select MAX(LEN(ColumnName)) from table_name
Dies gibt die Anzahl der Zeichen zurück.
select MAX(DATALENGTH(ColumnName)) from table_name
Dies gibt die Anzahl der benötigten Bytes zurück.
Wenn jemand varchar verwendet, dann DATALENGTH
. . Mehr Details
Oft möchten Sie die Zeile mit der längsten Spalte identifizieren, insbesondere wenn Sie bei der Fehlerbehebung herausfinden möchten, warum die Länge einer Spalte in einer Zeile in einer Tabelle so viel länger ist als beispielsweise jede andere Zeile. Diese Abfrage gibt Ihnen die Möglichkeit, einen Bezeichner in der Zeile aufzulisten, um zu identifizieren, um welche Zeile es sich handelt.
select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) =
(select max(len([description]))
FROM [database1].[dbo].[table1]