亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

簡單有用的SQL腳本 (行列互轉,查詢一個表內相同紀錄等)

2020-10-30 19:10:41
字體:
來源:轉載
供稿:網友
行列互轉
復制代碼 代碼如下:

create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,'a',1,1000)
insert into test values(1,'a',2,2000)
insert into test values(1,'a',3,4000)
insert into test values(1,'a',4,5000)
insert into test values(2,'b',1,3000)
insert into test values(2,'b',2,3500)
insert into test values(2,'b',3,4200)
insert into test values(2,'b',4,5500)
select * from test
--行轉列
select id,name,
[1] as "一季度",
[2] as "二季度",
[3] as "三季度",
[4] as "四季度",
[5] as "5"
from
test
pivot
(
sum(profile)
for quarter in
([1],[2],[3],[4],[5])
)
as pvt

create table test2(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int)
insert into test2 values(1,'a',1000,2000,4000,5000)
insert into test2 values(2,'b',3000,3500,4200,5500)
select * from test2
--列轉行
select id,name,quarter,profile
from
test2
unpivot
(
profile
for quarter in
([Q1],[Q2],[Q3],[Q4])
)
as unpvt


sql替換字符串 substring replace
復制代碼 代碼如下:

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

SQL查詢一個表內相同紀錄 having
如果一個ID可以區分的話,可以這么寫
復制代碼 代碼如下:

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

如果幾個ID才能區分的話,可以這么寫
復制代碼 代碼如下:

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

其他回答:數據表是zy_bho,想找出ZYH字段名相同的記錄
復制代碼 代碼如下:

--方法1:
SELECT *FROM zy_bho a WHERE EXISTS
(SELECT 1 FROM zy_bho WHERE [PK] <> a.[PK] AND ZYH = a.ZYH)
--方法2:
select a.* from zy_bho a join zy_bho b
on (a.[pk]<>b.[pk] and a.zyh=b.zyh)
--方法3:
select * from zy_bbo where zyh in
(select zyh from zy_bbo group by zyh having count(zyh)>1)
--其中pk是主鍵或是 unique的字段。

把多行SQL數據變成一條多列數據,即新增列
復制代碼 代碼如下:

Select
DeptName=O.OUName,
'9G'=Sum(Case When PersonalGrade=9 Then 1 Else 0 End),
'8G'=Sum(Case When PersonalGrade=8 Then 1 Else 0 End),
'7G4'=Sum(Case When PersonalGrade=7 AND JobGrade =4 Then 1 Else 0 End),
'7G3'=Sum(Case When PersonalGrade=7 AND JobGrade =3 Then 1 Else 0 End),
'6G'=Sum(Case When PersonalGrade=6 Then 1 Else 0 End),
'5G3'=Sum(Case When PersonalGrade=5 AND JobGrade =3 Then 1 Else 0 End),
'5G2'=Sum(Case When PersonalGrade=5 AND JobGrade =2 Then 1 Else 0 End),
'4G'=Sum(Case When PersonalGrade=4 Then 1 Else 0 End),
'3G2'=Sum(Case When PersonalGrade=3 AND JobGrade =2 Then 1 Else 0 End),
'3G1'=Sum(Case When PersonalGrade=3 AND JobGrade =1 Then 1 Else 0 End),
'2G'=Sum(Case When PersonalGrade=2 Then 1 Else 0 End),
'1G'=Sum(Case When PersonalGrade=1 Then 1 Else 0 End),
--' 未定級'=Sum(Case When PersonalGrade=NULL Then 1 Else 0 End)

表復制
復制代碼 代碼如下:

insert into PhoneChange_Num ([IMSI],Num)
SELECT [IMSI]
,count([IMEI]) as num
FROM [Test].[dbo].[PhoneChange] group by [IMSI] order by num desc

語法1:Insert INTO table(field1,field2,...) values(value1,value2,...)
語法2:Insert into Table2(field1,field2,...) select value1,value2,... from Table1(要求目標表Table2必須存在,由于目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。)
語法3:SELECT vale1, value2 into Table2 from Table1(要求目標表Table2不存在,因為在插入時會自動創建表Table2,并將Table1中指定字段數據復制到Table2中。)
語法4:使用導入導出功能進行全表復制。如果是使用【編寫查詢以指定要傳輸的數據】,那么在大數據表的復制就會有問題?因為復制到一定程度就不再動了,內存爆了?它也沒有寫入到表中。而使用上面3種語法直接執行是會馬上刷新到數據庫表中的,你刷新一下mdf文件就知道了。

利用帶關聯子查詢Update語句更新數據
復制代碼 代碼如下:

--方法1:
Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null
--方法2:
update A
set newqiantity=B.qiantity
from A,B
where A.bnum=B.bnum
--方法3:
update
(select A.bnum ,A.newqiantity,B.qiantity from A left join B on A.bnum=B.bnum) AS C
set C.newqiantity = C.qiantity
where C.bnum =XX


連接遠程服務器
復制代碼 代碼如下:

--方法1:
select * from openrowset('SQLOLEDB','server=192.168.0.67;uid=sa;pwd=password','SELECT * FROM BCM2.dbo.tbAppl')
--方法2:
select * from openrowset('SQLOLEDB','192.168.0.67';'sa';'password','SELECT * FROM BCM2.dbo.tbAppl')


TRUNCATE TABLE [Table Name]
下面是對Truncate語句在MSSQLServer2000中用法和原理的說明:
Truncate是SQL中的一個刪除數據表內容的語句,用法是:
Truncate table 表名 速度快,而且效率高,因為:
  TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日志資源少。
DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,并且只在事務日志中記錄頁的釋放。
  TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。如果要刪除表定義及其數據,請使用 DROP TABLE 語句。
  對于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發器。
  TRUNCATE TABLE 不能用于參與了索引視圖的表。

參考文獻
數據庫表行轉列,列轉行終極方案

行列互轉(動態腳本)

SELECT INTO 和 INSERT INTO SELECT 兩種表復制語句

非常有用的sql腳本

作者:聽風吹雨
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕亚洲| 欧美精品亚州精品| 久久久国产精品x99av| 久久久91精品国产一区不卡| 国产免费一区视频观看免费| 91在线网站视频| 一区二区在线免费视频| 国产原创欧美精品| 在线观看日韩www视频免费| 久久久久久久久久久人体| 狠狠色狠狠色综合日日小说| 亚洲精品电影在线| 欧美影院成年免费版| 免费99精品国产自在在线| 国产日本欧美一区| 成人av在线亚洲| 亚洲国产精品资源| 久热国产精品视频| 欧美色视频日本高清在线观看| 欧美亚洲一区在线| 亚洲乱亚洲乱妇无码| 亚洲黄页网在线观看| 日韩精品亚洲视频| 欧美精品18videosex性欧美| 国产日产久久高清欧美一区| 九九视频直播综合网| 日韩精品极品在线观看播放免费视频| 中文字幕亚洲天堂| 少妇高潮 亚洲精品| 美日韩在线视频| 亚洲欧美国产高清va在线播| 日韩精品亚洲精品| 精品国产欧美成人夜夜嗨| 2020欧美日韩在线视频| 精品久久久中文| 欧美激情视频播放| 日韩中文在线中文网三级| 欧洲s码亚洲m码精品一区| 色婷婷**av毛片一区| 狠狠躁夜夜躁人人躁婷婷91| 国产免费一区二区三区在线观看| 欧美在线www| 中文字幕精品一区二区精品| 在线精品播放av| 国产精品久久久久久久久久新婚| 欧美极品美女电影一区| 亚洲免费小视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久久久在线观看| 欧美在线激情视频| 日韩一区二区精品视频| 国产日韩精品一区二区| 主播福利视频一区| 日韩中文字幕网站| 91在线视频精品| 91av视频在线播放| 亚洲aⅴ日韩av电影在线观看| 日韩精品免费在线播放| 亚洲女人天堂视频| 国内外成人免费激情在线视频网站| 欧美在线日韩在线| 日本在线精品视频| 国产精品18久久久久久首页狼| 成人深夜直播免费观看| 国产一区香蕉久久| 日本不卡免费高清视频| 欧洲一区二区视频| 日韩精品999| 欧美另类暴力丝袜| 亚洲国产欧美自拍| 亚洲激情 国产| 浅井舞香一区二区| 国内精品久久久久伊人av| 国产欧美日韩中文字幕在线| 亚洲综合大片69999| 欧美黄色片视频| 亚洲va久久久噜噜噜久久天堂| 日韩小视频在线观看| 欧美激情亚洲一区| 国产精品视频yy9099| 久久精品成人动漫| 日韩av观看网址| 一区二区三欧美| 亚洲成人性视频| 国产精品v片在线观看不卡| 国产精品扒开腿做爽爽爽的视频| 国产女人18毛片水18精品| 91久久久久久久久久久久久| 国产精品自拍偷拍视频| 亚洲一区中文字幕| 欧美日本中文字幕| 91青草视频久久| 国产午夜精品理论片a级探花| 日韩在线免费视频观看| 日韩在线视频线视频免费网站| 久久九九热免费视频| 久久久97精品| 久久久亚洲天堂| 日韩激情在线视频| 亚洲性夜色噜噜噜7777| 日韩美女在线观看一区| 奇门遁甲1982国语版免费观看高清| 欧美成人免费全部观看天天性色| 日韩精品在线观看一区| 欧美亚洲成人免费| 国产一区二区成人| 欧美视频一区二区三区…| 精品高清美女精品国产区| 一区二区欧美久久| 亚洲自拍偷拍视频| 欧美一二三视频| 国产日韩在线观看av| 久久久久久com| 欧美又大粗又爽又黄大片视频| 在线成人激情视频| 国产精品久久久久久久久久东京| 国产精品一区二区三区久久久| 日韩欧美极品在线观看| 亚洲性视频网站| 7777精品视频| 国产精品手机播放| 全球成人中文在线| 欧美性猛交xxxx免费看| 国产精品jvid在线观看蜜臀| 欧美成人免费在线观看| 国产一区二区三区精品久久久| 久久色免费在线视频| 久久久在线免费观看| 国产视频精品免费播放| 久久久精品久久久| 国语自产精品视频在线看抢先版图片| 精品少妇一区二区30p| 麻豆精品精华液| 欧美日韩精品国产| 一区二区三区视频观看| 大量国产精品视频| 久久久久亚洲精品成人网小说| 亚洲欧美日韩综合| 久久在精品线影院精品国产| 日韩免费看的电影电视剧大全| 国产精品久久精品| 国产精品一区久久久| 亚洲成色777777在线观看影院| 上原亚衣av一区二区三区| 国产偷国产偷亚洲清高网站| 久久99国产精品久久久久久久久| 亚洲欧美日韩精品久久| 亚洲精品电影在线| 色偷偷亚洲男人天堂| 日韩欧美一区二区在线| 色综合久久天天综线观看| 欧美丰满少妇xxxxx做受| 国产成人精品久久二区二区| 国产日韩中文在线| 欧美日韩一区二区免费在线观看| 欧美日韩国产限制| 亚洲美女福利视频网站| 亚洲欧美日韩国产中文| 国内精品国产三级国产在线专| 欧美视频在线看| 欧美激情一区二区三区在线视频观看| 精品久久久久久久久久| 欧美日韩国产精品一区二区不卡中文| 精品中文字幕在线2019|