根据存储过程包含某个关键字,查找相关所有存储过程信息及根据多个主键删除重复列
2015-01-23 11:54
239 查看
--STUFF用法, ReportDetail 表存储的PersonelID为A,B,C,D 查询出来将对应A B C D 转换成人的姓名姓名1,姓名2,姓名3,姓名4 STUFF((SELECT ','+Personnel.PersonnelName FROM Personnel WHERE a.PersonnelId LIKE '%'+Personnel.PersonnelId+'%' FOR XML PATH('')),1,1,'') PersonName,
--删除重复列
delete from tbAccount
where NaturalCode in (select NaturalCode from tbAccount group by NaturalCode having count(NaturalCode) > 1)
and AutoID not in (select min(AutoID) from tbAccount
group by NaturalCode having count(NaturalCode)>1)
--根据多个主键删除重复列
delete t
FROM
(SELECT *,ROW_NUMBER() OVER(partition BY Period
,LegalEntity
,ino_id
,BUZEI ORDER BY Period) AS Row FROM tbl_Journal with(nolock)
where period>'201405'
) AS t
WHERE Row>1
--根据关键字查询相关存储过程
select o.name,c.text from sys.objects o
inner join syscomments c on o.object_id=c.id
where o.type='P' AND c.text like '%Approved%'
--行转列 Priovt
if object_id('tempTb')is not null drop table tempTb
go
create table tempTb (姓名 varchar(10),课程 varchar(10),分数 int)
insert into tempTb values('张三','语文',74)
insert into tempTb values('张三','数学',83)
insert into tempTb values('张三','物理',93)
insert into tempTb values('李四','语文',74)
insert into tempTb values('李四','数学',84)
insert into tempTb values('李四','物理',94)
go
declare @sql varchar(8000)
set @sql='' --初始化变量@sql
select @sql=@sql+','+课程 from tempTb group by 课程--变量多值赋值
--STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
--stuff(字符串,从1个字符,删除一个字符,插入一个新的字符串)
set @sql=stuff(@sql,1,1,'')--去掉首个','
set @sql='select * from tempTb pivot (max(分数) for 课程 in ('+@sql+')) a'
exec(@sql)
select 姓名,
sum(case 课程 when'语文'then 分数 else 0 end)语文,
sum(case 课程 when'数学'then 分数 else 0 end)数学,
sum(case 课程 when '物理'then 分数 else 0 end)物理
from tempTb
group by 姓名
相关文章推荐
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- 在整个数据库中查找包含某关键字的所有存储过程
- 通用存储过程之二: 根据主键的值,判断记录是否存在的存储过程
- 根据关键字查询信息存储过程
- 快速查找所有存储过程中是否包含某个字符串
- 删除的所有存储过程、主键、外键、索引等
- 在所有存储过程中查找一个关键字
- 删除数据库的所有存储过程、主键、外键、索引等
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- db2 根据关键字 特殊名称删除存储过程
- 在整个数据库中查找包含某关键字的所有存储过程
- 删除数据库的所有存储过程、主键、外键、索引等
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- SQL Server中查找所有包含了某个文本的存储过程(SP)
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等(转)
- 通用存储过程之三:根据主键的值,查询记录的存储过程
- 删除数据库的所有存储过程、主键、外键、索引等
- sqlserver快速查找所有存储过程中是否包含某字符
- 【SQL语句】 - 在所有存储过程中查找关键字,关键字不区分大小写 [sp_findproc]