exec p_area '421002'
exec p_area '421003'
exec p_area '421081'
exec p_area '421083'
exec p_area '421087'
exec p_area '421022'
exec p_area '421023'
exec p_area '421024'
解决方案 »
- 问一个查询语句。选择表1的所有内容。在更具表2的内容在表1的结果的列上加一个字段。
- 查询时候between..and快还是">和<"快呢?
- 在贴触发器问题(邹建大哥有空帮帮忙)
- 一个关于事务并发的问题,银行取钱问题
- 在WIN98和NT(2000)中的SQL到底有什么不同?
- 非常急!!!客户端连接不上服务器的问题(注:已经复制dbnmpntw.dll,ntwdblib.dll 到客户端system32目录了)
- 如何用asp提取mssql数据库中的varbinary型字段?
- SQL2005 转到 SQL2000 .要做什么修改不??
- 请求帮助:关于日期格式化
- 请教sql
- 求助
- 我想知道SQL Server Management Studio这个软件有什么作用
这个好像没办法只出现一次表头的,不过你可以考虑,先建个临时表:if object_id('tempdb..#temp')
drop table #temp
create table #temp (列 类型,...)
insert into #temp
exec p_area '421002'insert into #temp
exec p_area '421003'insert into #temp
exec p_area '421081'insert into #temp
exec p_area '421083'insert into #temp
exec p_area '421087'insert into #temp
exec p_area '421022'insert into #temp
exec p_area '421023'insert into #temp
exec p_area '421024'--然后
select * from #temp
这个好像没办法只出现一次表头的,不过你可以考虑,先建个临时表:if object_id('tempdb..#temp')
drop table #temp
create table #temp (列 类型,...)
insert into #temp
exec p_area '421002'insert into #temp
exec p_area '421003'insert into #temp
exec p_area '421081'insert into #temp
exec p_area '421083'insert into #temp
exec p_area '421087'insert into #temp
exec p_area '421022'insert into #temp
exec p_area '421023'insert into #temp
exec p_area '421024'--然后
select * from #temp
如果把临时表建在存储过程里面是不会会更好点?
调用不变,最后一次调用就是以前调用的全部数据。
drop table s
gocreate table s(id int,score int)INSERT INTO s
SELECT 1, 150
UNION ALL SELECT 2, 133
UNION ALL SELECT 3, 123
UNION ALL SELECT 4, 80
UNION ALL SELECT 5, 90
UNION ALL SELECT 6, 60
UNION ALL SELECT 7, 34
UNION ALL SELECT 8, 21
UNION ALL SELECT 9, 102
godeclare @table_name nvarchar(100);
declare @sql nvarchar(max);
declare @start int;
declare @end int;
declare @interval int;select @start = 0, --开始的分数
@end = 150, --结束的分数
@interval = 20,--这里的间隔改为20
@sql = '',
@table_name = 's'; --这里的表的名称是s;with t
as
(
select @start as start_score,@start + @interval as end_score
union all
select start_score + @interval,
case when end_score + @interval > @end
then @end
else end_score + @interval
end
from t
where start_score + @interval < @end
),tt
as
(
select start_score,
end_score,
cast(end_score as varchar) +'-'+cast(start_score as varchar) as score_range
from t
)select @sql = @sql +
' union all select '''+score_range+''' as ['+score_range +'] ,count(case when score >'+cast(start_score as varchar) +
' and score <= '+cast(end_score as varchar) +
' then 1 else null end) as v ' +
' from '+@table_name
from tt
select @sql = STUFF(@sql,1,len(' union all'),'')exec(@sql)
/*
20-0 v
20-0 0
40-20 2
60-40 1
80-60 1
100-80 1
120-100 1
140-120 2
150-140 1
*/