91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

總結簡單實用的SQL腳本

發布時間:2021-10-22 13:45:02 來源:億速云 閱讀:99 作者:iii 欄目:數據庫

本篇內容主要講解“總結簡單實用的SQL腳本”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“總結簡單實用的SQL腳本”吧!

1、行轉列的用法PIVOT

CREATE table test (id int,name nvarchar(20),quarter int,number int) insert into test values(1,N'蘋果',1,1000) insert into test values(1,N'蘋果',2,2000) insert into test values(1,N'蘋果',3,4000) insert into test values(1,N'蘋果',4,5000) insert into test values(2,N'梨子',1,3000) insert into test values(2,N'梨子',2,3500) insert into test values(2,N'梨子',3,4200) insert into test values(2,N'梨子',4,5500) select * from test

結果:

總結簡單實用的SQL腳本

select ID,NAME, [1] as '一季度', [2] as '二季度', [3] as '三季度', [4] as '四季度' from test pivot ( sum(number) for quarter in ([1],[2],[3],[4]) ) as pvt

結果:

總結簡單實用的SQL腳本

2、列轉行的用法UNPIOVT

create table test2 (id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int) insert into test2 values(1,'蘋果',1000,2000,4000,5000) insert into test2 values(2,'梨子',3000,3500,4200,5500) select * from test2

(提示:可以左右滑動代碼)

結果:

總結簡單實用的SQL腳本

--列轉行 select id,name,quarter,number from test2 unpivot ( number for quarter in ([Q1],[Q2],[Q3],[Q4]) ) as unpvt

結果:

總結簡單實用的SQL腳本

3、字符串替換SUBSTRING/REPLACE

SELECT REPLACE('abcdefg',SUBSTRING('abcdefg',2,4),'**')

結果:

總結簡單實用的SQL腳本

SELECT REPLACE('13512345678',SUBSTRING('13512345678',4,11),'********')

結果:

總結簡單實用的SQL腳本

SELECT REPLACE('12345678@qq.com','1234567','******')

結果:

總結簡單實用的SQL腳本

4、查詢一個表內相同紀錄 HAVING

如果一個ID可以區分的話,可以這么寫

SELECT * FROM HR.Employees

結果:

總結簡單實用的SQL腳本

select * from HR.Employees where title in ( select title from HR.Employees group by title having count(1)>1)

結果:

總結簡單實用的SQL腳本

對比一下發現,ID為1,2的被過濾掉了,因為他們只有一條記錄

如果幾個ID才能區分的話,可以這么寫

select * from HR.Employees where title+titleofcourtesy in (select title+titleofcourtesy from HR.Employees group by title,titleofcourtesy having count(1)>1)

結果:

總結簡單實用的SQL腳本

title在和titleofcourtesy進行拼接后符合條件的就只有ID為6,7,8,9的了

5、把多行SQL數據變成一條多列數據,即新增列

SELECT   id,  name,  SUM(CASE WHEN quarter=1 THEN number ELSE 0 END) '一季度',  SUM(CASE WHEN quarter=2 THEN number ELSE 0 END) '二季度',  SUM(CASE WHEN quarter=3 THEN number ELSE 0 END) '三季度',  SUM(CASE WHEN quarter=4 THEN number ELSE 0 END) '四季度' FROM test GROUP BY id,name

結果:

總結簡單實用的SQL腳本

我們將原來的4列增加到了6列。細心的朋友可能發現了這個結果和上面的行轉列怎么一模一樣?其實上面的行轉列是省略寫法,這種是比較通用的寫法。

6、表復制

語法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文件就知道了。

7、利用帶關聯子查詢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 ='001'

8、連接遠程服務器

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

當然也可以參考以前的示例,建立DBLINK進行遠程連接

9、Date 和 Time 樣式 CONVERT

CONVERT() 函數是把日期轉換為新數據類型的通用函數。

CONVERT() 函數可以用不同的格式顯示日期/時間數據。

語法

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 規定目標數據類型(帶有可選的長度)。data_to_be_converted 含有需要轉換的值。style  規定日期/時間的輸出格式。

可以使用的 style 值:

Style IDStyle 格式
100 或者 0mon dd yyyy hh:miAM (或者 PM)
101mm/dd/yy
102yy.mm.dd
103dd/mm/yy
104dd.mm.yy
105dd-mm-yy
106dd mon yy
107Mon dd, yy
108hh:mm:ss
109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110mm-dd-yy
111yy/mm/dd
112yymmdd
113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)
114hh:mi:ss:mmm(24h)
120 或者 20yyyy-mm-dd hh:mi:ss(24h)
121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)
126yyyy-mm-ddThh:mm:ss.mmm(沒有空格)
130dd mon yyyy hh:mi:ss:mmmAM
131dd/mm/yy hh:mi:ss:mmmAM
SELECT CONVERT(varchar(100), GETDATE(), 0) --結果: 12  7 2020  9:33PM SELECT CONVERT(varchar(100), GETDATE(), 1) --結果: 12/07/20 SELECT CONVERT(varchar(100), GETDATE(), 2) --結果: 20.12.07 SELECT CONVERT(varchar(100), GETDATE(), 3) --結果: 07/12/20 SELECT CONVERT(varchar(100), GETDATE(), 4) --結果: 07.12.20 SELECT CONVERT(varchar(100), GETDATE(), 5) --結果: 07-12-20 SELECT CONVERT(varchar(100), GETDATE(), 6) --結果: 07 12 20 SELECT CONVERT(varchar(100), GETDATE(), 7) --結果: 12 07, 20 SELECT CONVERT(varchar(100), GETDATE(), 8) --結果: 21:33:18 SELECT CONVERT(varchar(100), GETDATE(), 9) --結果: 12  7 2020  9:33:18:780PM SELECT CONVERT(varchar(100), GETDATE(), 10) --結果: 12-07-20 SELECT CONVERT(varchar(100), GETDATE(), 11) --結果: 20/12/07 SELECT CONVERT(varchar(100), GETDATE(), 12) --結果: 201207 SELECT CONVERT(varchar(100), GETDATE(), 13) --結果: 07 12 2020 21:33:18:780 SELECT CONVERT(varchar(100), GETDATE(), 14) --結果: 21:33:18:780 SELECT CONVERT(varchar(100), GETDATE(), 20) --結果: 2020-12-07 21:33:18 SELECT CONVERT(varchar(100), GETDATE(), 21) --結果: 2020-12-07 21:33:18.780 SELECT CONVERT(varchar(100), GETDATE(), 22) --結果: 12/07/20  9:33:18 PM SELECT CONVERT(varchar(100), GETDATE(), 23) --結果: 2020-12-07 SELECT CONVERT(varchar(100), GETDATE(), 24) --結果: 21:33:18 SELECT CONVERT(varchar(100), GETDATE(), 25) --結果: 2020-12-07 21:33:18.780 SELECT CONVERT(varchar(100), GETDATE(), 100) --結果: 12  7 2020  9:33PM SELECT CONVERT(varchar(100), GETDATE(), 101) --結果: 12/07/2020 SELECT CONVERT(varchar(100), GETDATE(), 102) --結果: 2020.12.07 SELECT CONVERT(varchar(100), GETDATE(), 103) --結果: 07/12/2020 SELECT CONVERT(varchar(100), GETDATE(), 104) --結果: 07.12.2020 SELECT CONVERT(varchar(100), GETDATE(), 105) --結果: 07-12-2020 SELECT CONVERT(varchar(100), GETDATE(), 106) --結果: 07 12 2020 SELECT CONVERT(varchar(100), GETDATE(), 107) --結果: 12 07, 2020 SELECT CONVERT(varchar(100), GETDATE(), 108) --結果: 21:33:18 SELECT CONVERT(varchar(100), GETDATE(), 109) --結果: 12  7 2020  9:33:18:780PM SELECT CONVERT(varchar(100), GETDATE(), 110) --結果: 12-07-2020 SELECT CONVERT(varchar(100), GETDATE(), 111) --結果: 2020/12/07 SELECT CONVERT(varchar(100), GETDATE(), 112) --結果: 20201207 SELECT CONVERT(varchar(100), GETDATE(), 113) --結果: 07 12 2020 21:33:18:780 SELECT CONVERT(varchar(100), GETDATE(), 114) --結果: 21:33:18:780 SELECT CONVERT(varchar(100), GETDATE(), 120) --結果: 2020-12-07 21:33:18 SELECT CONVERT(varchar(100), GETDATE(), 121) --結果: 2020-12-07 21:33:18.780

到此,相信大家對“總結簡單實用的SQL腳本”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

斗六市| 泸溪县| 滕州市| 彭阳县| 西宁市| 阆中市| 杨浦区| 手游| 临朐县| 大余县| 朝阳区| 宁海县| 喜德县| 子洲县| 长子县| 盘山县| 确山县| 郧西县| 岳池县| 景洪市| 三亚市| 长顺县| 昌乐县| 封丘县| 汾西县| 静宁县| 碌曲县| 丽江市| 汝南县| 桃园县| 铅山县| 平乡县| 许昌市| 屏边| 梅河口市| 廊坊市| 上高县| 旅游| 辽宁省| 通江县| 乳源|