网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 数据库 > 正文

简单但实用的SQL脚本

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

行列互转

  1. create table test(id int,name varchar(20),quarter int,profile int)  
  2. insert into test values(1,'a',1,1000) 
  3. insert into test values(1,'a',2,2000) 
  4. insert into test values(1,'a',3,4000) 
  5. insert into test values(1,'a',4,5000) 
  6. insert into test values(2,'b',1,3000) 
  7. insert into test values(2,'b',2,3500) 
  8. insert into test values(2,'b',3,4200) 
  9. insert into test values(2,'b',4,5500) 
  10. select * from test 
  11.  
  12. --行转列 
  13. select id,name
  14. [1] as "一季度"
  15. [2] as "二季度"
  16. [3] as "三季度"
  17. [4] as "四季度"
  18. [5] as "5" 
  19. from 
  20. test 
  21. pivot 
  22. sum(profile) 
  23. for quarter in 
  24. ([1],[2],[3],[4],[5]) 
  25. as pvt 
  26.  
  27.  
  28. create table test2(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int
  29. insert into test2 values(1,'a',1000,2000,4000,5000) 
  30. insert into test2 values(2,'b',3000,3500,4200,5500) 
  31. select * from test2 
  32.  
  33. --列转行 
  34. select id,name,quarter,profile 
  35. from 
  36. test2 
  37. unpivot 
  38. profile 
  39. for quarter in 
  40. ([Q1],[Q2],[Q3],[Q4]) 
  41. )  
  42. as unpvt 

sql替换字符串 substring replace

  1. --例子1: 
  2. update tbPersonalInfo set TrueName = replace(TrueName,substring(TrueName,2,4),'**'where ID = 1 
  3.  
  4. --例子2: 
  5. update tbPersonalInfo set Mobile = replace(Mobile,substring(Mobile,4,11),'********'where ID = 1 
  6.  
  7. --例子3: 
  8. update tbPersonalInfo set Email = replace(Email,'chinamobile','******'where ID = 1  

SQL查询一个表内相同纪录 having

如果一个ID可以区分的话,可以这么写

  1. select * from 表 where ID in ( 
  2.   select ID from 表 group by ID having sum(1)>1)) 

如果几个ID才能区分的话,可以这么写

  1. select * from 表 where ID1+ID2+ID3 in 
  2.   (select ID1+ID2+ID3 from 表 group by ID1,ID2,ID3 having sum(1)>1)) 

其他回答:数据表是zy_bho,想找出ZYH字段名相同的记录

  1. --方法1:     
  2. SELECT  *FROM  zy_bho  a  WHERE  EXISTS  
  3.   (SELECT  1  FROM  zy_bho  WHERE  [PK]  <>  a.[PK]  AND  ZYH  =  a.ZYH)  
  4.     
  5. --方法2: 
  6. select  a.*  from  zy_bho  a  join  zy_bho  b  
  7.       on  (a.[pk]<>b.[pk]  and  a.zyh=b.zyh)  
  8.     
  9. --方法3: 
  10. select  *  from  zy_bbo  where  zyh  in  
  11. (select  zyh  from  zy_bbo  group  by  zyh  having  count(zyh)>1)  
  12. --其中pk是主键或是 unique的字段。  
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师