sqlserver行计数,sql计算行数

sql查询语句如何添加一个统计数据行数?

具体看你什么数据库了,还有你字段1,字段2,字段3哪个字段是字符类型的。

为常州等地区用户提供了全套网页设计制作服务,及常州网站建设行业解决方案。主营业务为成都网站建设、网站设计、常州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

比如字段3是字符类型:

oracle写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

union all

select null,null,'合计:'||count(*) from 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

mysql写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

union all

select null,null,concat('合计:',(cast(count(*) as varchar) from 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

sqlserver写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

union all

select null,null,'合计:'+(cast(count(*) as varchar) from 打印数据表 where 打印时间='2018-09-01' AND 打印时间'2018-09-19'

SQLServer每行的空间占用数应该如何计算

创建存储过程:

CREATE PROCEDURE [dbo].[sys_viewTableSpace]

AS

BEGIN

SET NOCOUNT ON;

CREATE TABLE [dbo].#tableinfo(

表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

记录数 [int] NULL,

预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

使用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

索引占用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

未用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL

)

insert into #tableinfo(表名, 记录数, 预留空间, 使用空间, 索引占用空间, 未用空间)

exec sp_MSforeachtable "exec sp_spaceused '?'"

select * from #tableinfo

order by 记录数 desc

drop table #tableinfo

END

使用的时候直接 :exec sys_viewtablespace

sql 查询某个库中的每个表的记录行数

select d.name as 表名,COUNT (*)as 记录 from syscolumns a inner join sysobjects d on a.id = d.id and d.xtype = 'U'

group by d.name

这是sqlserver 实现的,不知道符不符合。不过刚刚验证了一下,不是很对,估计是主键的原因,修改好了再看看

以上语句只能测试出部分,这个存储过程可以实现全部,sqlserver直接执行即可:

create table #temp(Recordcount int ,tableName varchar(30))

declare @tablename varchar(30)

declare @sql varchar(100)

declare @str varchar(30)

declare tablecursor cursor for

select name from sysobjects where xtype='u'

open tablecursor

fetch next from tablecursor into @tablename

while @@fetch_status=0

begin

set @str=@tablename

set @sql='insert into #temp(recordcount,tablename) select count(*),'+''''+@tablename+''''+' from '+@tablename

exec(@sql)

fetch next from tablecursor into @tablename

end

close tablecursor

deallocate tablecursor

select * from #temp drop table #temp


网站栏目:sqlserver行计数,sql计算行数
分享网址:http://azwzsj.com/article/dseshgs.html