我正在尝试使用SQL确定整个表中任何数据的最大值。请注意,我的意思是整个表,而不仅仅是一列或一行。整个表是varchar类型,目标是确定最大值是什么(varchar 255,varchar 100等)。
示例:
Name | ID
John | 1
Jake | 2
James | 3
应该回归"詹姆斯"因为它是整个表中最大的值。我也想要长度。
答案 0 :(得分:0)
您可以使用
获取字节大小select max(datalength(col0)+datalength(col1)+datalength(col2)...) from table
警惕这可能是一个昂贵的查询
答案 1 :(得分:0)
您必须为一个特定的表编写查询:
select top(1) value
from
(
select datalength(col1) as len, cast(col1 as varchar(max)) as value from mytable
union all
select datalength(col2) as len, cast(col2 as varchar(max)) as value from mytable
union all
...
) data
order by len desc;
答案 2 :(得分:0)
由于所有列都是varchar,您可以将表UNPIVOT到一列,然后选择由LEN()DESC排序的TOP 1值。
请注意,如果列具有不同的长度,则需要将它们强制转换为具有相同长度的列,以便它们可以一起旋转。
答案 3 :(得分:-1)
在互联网上查找数据类型及其占用的字节数例如int = 4字节。
如果您有varchar或nvarchar等类型
使用max(len(column))+2
长度将为您提供基本相同的字节