Biggest/Longest varchar 中的记录 table
Biggest/Longest records in varchar table
我们最近注意到,在我们最大的 table 之一中,有些行比其他行大几倍。 "bigger" 我的意思是更长的时间和更多的存储空间 space。
如何显示 table 中最大的前 1000 行?
几乎所有列都是 varchar,因此如果查询能够汇总每一行中的数据大小并显示最大的行,那就太好了。
我试着修改这个:
select MyVarcharColumnName
from MyTableName
where len(MyVarcharColumnName) =
(select max(len(MyVarcharColumnName)) from MyTableName)
还有这个:
select max(len(Desc)) from table_name
但是
我收到一个错误
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'Desc'.
它认为Desc
是关键字而不是标识符。尝试将其括在尖括号 ([]
) 中,如下所示:
select max(len([Desc])) from table_name
这个怎么样?
select top 1000 t.*
from MyTableName t
order by len(MyVarcharColumnName) desc;
如果您有多列,可以将它们添加到 order by
:
order by (len(col1) + len(col2) + . . . ) desc
我在这个计算中使用了 len()
,因为这就是你在问题中使用的。您可能还对 [DATALENGTH()][1]
.
感兴趣
我们最近注意到,在我们最大的 table 之一中,有些行比其他行大几倍。 "bigger" 我的意思是更长的时间和更多的存储空间 space。
如何显示 table 中最大的前 1000 行?
几乎所有列都是 varchar,因此如果查询能够汇总每一行中的数据大小并显示最大的行,那就太好了。
我试着修改这个:
select MyVarcharColumnName
from MyTableName
where len(MyVarcharColumnName) =
(select max(len(MyVarcharColumnName)) from MyTableName)
还有这个:
select max(len(Desc)) from table_name
但是
我收到一个错误
Msg 156, Level 15, State 1, Line 1 Incorrect syntax near the keyword 'Desc'.
它认为Desc
是关键字而不是标识符。尝试将其括在尖括号 ([]
) 中,如下所示:
select max(len([Desc])) from table_name
这个怎么样?
select top 1000 t.*
from MyTableName t
order by len(MyVarcharColumnName) desc;
如果您有多列,可以将它们添加到 order by
:
order by (len(col1) + len(col2) + . . . ) desc
我在这个计算中使用了 len()
,因为这就是你在问题中使用的。您可能还对 [DATALENGTH()][1]
.