如何在sql server中获取max length的值

时间:2014-09-01 07:55:40

标签: sql sql-server max maxlength

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

id  | value
----+--------
 1  | 0123
 2  | 00034567
 3  | 547

此数据集的所需结果为00034567.

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

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

SELECT TOP 1 t.value
FROM table AS t
ORDER BY LEN(t.value) DESC

答案 1 :(得分:0)

你使用的sql是正确的,你只需要将它转换为nvarchar

答案 2 :(得分:0)

按长度排序并占据第一行:

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

请参阅SQLFiddle了解最后一项。