如何在sql server中获取最大长度的值

如何在sql server中获取最大长度的值,sql,sql-server,max,maxlength,Sql,Sql Server,Max,Maxlength,我想问您是否有办法在ms sql server中获取maxlength of column的值。 例如,在表A中,我们有: id | value ----+-------- 1 | 0123 2 | 00034567 3 | 547 此数据集的预期结果为00034567 无论我在哪里搜索这个问题,我都会得到答案select max(len(value)),这不是我需要的,因为它给出了值的最大字符数,而不是值本身 有什么想法吗?您使用的sql是正确的,您只需将其转换为nvarcha

我想问您是否有办法在ms sql server中获取maxlength of column的值。
例如,在表A中,我们有:

id  | value
----+--------
 1  | 0123
 2  | 00034567
 3  | 547
此数据集的预期结果为00034567

无论我在哪里搜索这个问题,我都会得到答案select max(len(value)),这不是我需要的,因为它给出了值的最大字符数,而不是值本身


有什么想法吗?

您使用的sql是正确的,您只需将其转换为nvarchar即可

按长度排序,然后取第一行:

SELECT TOP 1 t.value
FROM table AS t
ORDER BY LEN(t.value) DESC
select top 1 value
from mytable
order by len(value) desc
如果您想要领带:

select value
from mytable
where len(value) = (select max(len(value)) from mytable)
或更高效但特定于SQL Server的:

select value from (
  select value,
  rank() over (order by len(value) desc) rank
  from mytable) x
where rank = 1

最后一个问题请参见。

非常感谢您的回答!它给出了正确的结果!!那不是你想要的吗?如果您建议您需要的是34567>而不是547,那么,因为它是一个带select MAX()的整数就足够了。是的,如果字段只有整数,您是对的,但不幸的是,这不是我的情况。非常感谢您抽出时间。我的问题已经回答了。请看上面。谢谢你的回答。你对我得到的第一个答案感到不满,你也是对的