Chcę znaleźć najdłuższy VARCHAR
w określonej kolumnie tabeli programu SQL Server.
Oto przykład:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Jaki SQL ma zwrócić 3? Ponieważ najdłuższa wartość to 3 znaki?
sql
sql-server
string-length
maxlength
Milo LaMar
źródło
źródło
DATALENGTH
(ponieważ możesz użyćNVARCHAR
w niektórych miejscach lub kiedyś).dla mysql jego długość nie len
SELECT MAX(LENGTH(Desc)) FROM table_name
źródło
Uważaj!! Jeśli są spacje, nie będą uwzględniane przez metodę LEN w T-SQL. Nie daj się oszukać i użyj
select max(datalength(Desc)) from table_name
źródło
W przypadku Oracle jest to również LENGTH zamiast LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
Ponadto DESC jest słowem zastrzeżonym. Chociaż wiele zastrzeżonych słów będzie nadal działać w nazwach kolumn w wielu okolicznościach, jest to zła praktyka i może powodować problemy w niektórych okolicznościach. Są zarezerwowane z jakiegoś powodu.
Jeśli słowo Desc zostało użyte tylko jako przykład, należy zauważyć, że nie wszyscy zdają sobie z tego sprawę, ale wielu zda sobie sprawę, że jest to zarezerwowane słowo dla Malejąco. Osobiście zacząłem od tego, a następnie próbowałem dowiedzieć się, gdzie się podziała nazwa kolumny, ponieważ miałem tylko zarezerwowane słowa. Zrozumienie tego nie zajęło dużo czasu, ale pamiętaj o tym, decydując, co zastąpić rzeczywistą nazwę kolumny.
źródło
Podaje maksymalną liczbę rekordów w tabeli
select max(len(Description))from Table_Name
Daje rekord, mając większą liczbę
select Description from Table_Name group by Description having max(len(Description)) >27
Nadzieja pomaga komuś.
źródło
SELECT MAX(LEN(Desc)) as MaxLen FROM table
źródło
W przypadku serwera SQL (SSMS)
select MAX(LEN(ColumnName)) from table_name
Zwróci to liczbę znaków.
select MAX(DATALENGTH(ColumnName)) from table_name
Zwróci liczbę wykorzystanych / wymaganych bajtów.
JEŚLI ktoś użyje varchar, użyj
DATALENGTH
. Więcej szczegółówźródło
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
źródło
Często chcesz zidentyfikować wiersz, który ma tę kolumnę o największej długości, zwłaszcza jeśli rozwiązujesz problemy, aby dowiedzieć się, dlaczego długość kolumny w wierszu w tabeli jest o wiele dłuższa niż na przykład jakikolwiek inny wiersz. To zapytanie umożliwia wyświetlenie identyfikatora w wierszu w celu zidentyfikowania, który to wiersz.
select ID, [description], len([description]) as descriptionlength FROM [database1].[dbo].[table1] where len([description]) = (select max(len([description])) FROM [database1].[dbo].[table1]
źródło
W przypadku IBM Db2 jego DŁUGOŚĆ, a nie LEN:
SELECT MAX(LENGTH(Desc)) FROM table_name;
źródło