sqlserver如何统计表记录行数与列的最大长度?
1、打开SQL Server Management Studio管理工具,连接上数据库,输入如下SQL语句创建一张测试表
CREATE TABLE [tblCountMax](
[Id] [varchar](40) NOT NULL,
[Col1] [nvarchar](50) NULL,
[Col2] [int] NULL,
[Col3] [decimal](38,4) NULL
CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
2、使用如下SQL语句,插入几行测试数据
insert into [tblCountMax](Id, Col1, Col2, Col3) values(NEWID(), '第一行第一列', 50, 18.5);
insert into [tblCountMax](Id, Col1, Col2, Col3) values(NEWID(), null, null,null);
insert into [tblCountMax](Id, Col1, Col2, Col3) values(NEWID(), '第三行', 5000, 18.5684);
3、查询表中现有的数据
select * from [tblCountMax];
4、使敏匠用count统计表中的记录行数
select count(*) from [tblCountMax];
-- 同样是统计表中记录行数,据说count(1)要快一点
select count(1) from [tblCountMax];
5、使用count与where统计表中满足条件的记录行数
select count(1) from [tblCountMax] where ISNULL(Col2, '') <> '';
6、使用datalength(列)计算一个列的长度
select DATALENGTH(id), DATALENGTH(Col1), DATALENGTH(Col2)
, DA TALENGTH(Col3)
from [tblCountMax]
从结果可以看出:
1、对于varchar类型,有多少字符datalength就等于多少
2、对于nvarchar类型,一个王改汉字算2个喝海此长度
3、对于数字类型,返回的是占用的最大数字的空间字节数
7、使用max(datalength(列))计算一个列的最大长度
select max(DATALENGTH(id)), max(DATALENGTH(Col1))
, max(DATALENGTH(Col2)), max(DATALENGTH(Col3))
from [tblCountMax]