我想问你是否有办法在ms sql server中获取列的maxlength值。
例如,在表A中我们有:
id | value
----+--------
1 | 0123
2 | 00034567
3 | 547
此数据集的所需结果为00034567.
无论我在哪里搜索到这个问题,我都会得到答案选择max(len(value)),这不是我需要的,因为它给出了值的最大字符数而不是值本身。
有什么想法吗?
答案 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了解最后一项。