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

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

SQL Server簡單查詢示例匯總

2024-08-31 01:04:25
字體:
來源:轉載
供稿:網友

前言

本節我們講講一些簡單查詢語句示例以及需要注意的地方,簡短的內容,深入的理解。

EOMONTH

在SQL Server 2012的教程示例中,對于Sales.Orders表的查詢,需要返回每月最后一天的訂單。我們普遍的查詢如下

USE TSQL2012GOSELECT orderid, orderdate, custid, empidFROM Sales.OrdersWHERE orderdate = DATEADD(MONTH, DATEDIFF(MONTH, '19991231', orderdate), '19991231')

sqlserver,簡單查詢

但是在SQL Server 2012出現了新的函數直接返回每個月最后一天的訂單,通過EOMONTH函數即可,將

WHERE orderdate = DATEADD(MONTH, DATEDIFF(MONTH, '19991231', orderdate), '19991231')

替換為

SELECT orderid, orderdate, custid, empidFROM Sales.OrdersWHERE orderdate = EOMONTH(orderdate)

如上簡單而粗暴。

HAVING AND WHERE

我們利用Sales.OrderDetails表來查詢總價(qty*unitprice)大于10000的訂單,且按照總價排序。

USE TSQL2012GOSELECT orderid,SUM(unitprice *qty) AS TotalValueFROM Sales.OrderDetailsGROUP BY orderidHAVING SUM(unitprice *qty) > 10000ORDER BY TotalValue DESC

 sqlserver,簡單查詢

通過此例我們來說說WHERE和HAVING的區別,下面的示例是等同的

SELECT orderidFROM Sales.OrderDetailsWHERE orderid >10357GROUP BY orderidSELECT orderidFROM Sales.OrderDetailsGROUP BY orderidHAVING orderid >10357

但是利用聚合函數時能等同嗎?

SELECT orderidFROM Sales.OrderDetailsWHERE COUNT(qty * unitprice) >10000GROUP BY orderidSELECT orderidFROM Sales.OrderDetailsGROUP BY orderidHAVING COUNT(qty * unitprice) >10000

 sqlserver,簡單查詢

二者的區別我們總結一下:

(1)WHERE能夠用在UPDATE、DELETE、SELECT語句中,而HAVING只能用在SELECT語句中。

(2)WHERE過濾行在GROUP BY之前,而HAVING過濾行在GROUP BY之后。

(3)WHERE不能用在聚合函數中,除非該聚合函數位于HAVING子句或選擇列表所包含的子查詢中。

說了這么多,關于WHERE和HAVING的區別,其實WHERE的應用場景更多,我們歸根結底一句話來概括的HAVING的用法即可。

HAVING僅僅在SELECT語句中對組(GROUP BY)或者聚合函數(AGGREGATE)進行過濾

INSERT  TOP分析

當將查詢出的數據插入到表中,我們其實有兩種解決方案。

方案一

NSERT INTO TABLE …SELECT TOP (N) Cols…FROM Table

方案二

INSERT TOP(N) INTO TABLE …SELECT Cols…FROM Table

方案一是需要查詢幾條就插入幾條,方案二則是查詢所有我們需要插入幾條數據,接下來我們來看看二者不同以及二者性能問題,創建查詢表并插入數據。

CREATE TABLE TestValue(ID INT)INSERT INTO TestValue (ID)SELECT 1UNION ALLSELECT 2UNION ALLSELECT 3UNION ALLSELECT 4UNION ALLSELECT 5

需要插入的兩個表

USE TSQL2012GOCREATE TABLE InsertTestValue (ID INT)CREATE TABLE InsertTestValue1 (ID INT)

方案一的插入

INSERT INTO InsertTestValue (ID)SELECT TOP (2) IDFROM TestValueORDER BY ID DESCGO

方案二的插入

INSERT TOP (2) INTO InsertTestValue1 (ID)SELECT IDFROM TestValueORDER BY ID DESCGO

接下來查詢方案一和方案二的數據

SELECT *FROM InsertTestValueGOSELECT *FROM InsertTestValue1GO

sqlserver,簡單查詢

我們對方案一和方案二插入數據之前我們對查詢的數據是進行了降序,此時我們能夠很明顯的看到方案一中的查詢數據確確實實是降序,而方案二則忽略了降序,這是個很有意思的地方,至此我們看到了二者的不同。

二者性能比較

在插入數據時我們對其進行開銷分析如下:

sqlserver,簡單查詢

到這里我們能夠知道利用INSET TOP (N)比INSERT … SELECT TOP (N)性能更好,同時SELECT TOP(N)會對查詢出的數據排序進行忽略。至此我們可以得出如下結論

結論:INSERT TOP (N)比INSERT … SELECT TOP (N)插入數據性能更好。

COUNT(DISTINCT) AND COUNT(ALL)

關于DISTINCT就不用多講,此關鍵字過濾重復針對的是所有列數據一致才過濾而不是針對于單列數據一致才過濾,我們看看COUNT(DISTINCT)和COUNT(ALL)查詢出的數據是一致還是不一致呢?我們首先創建測試表

CREATE TABLE TestData(  Id INT NOT NULL IDENTITY PRIMARY KEY,  NAME VARCHAR(max) NULL);

插入如下測試數據

sqlserver,簡單查詢

接下來我們進行如下查詢

USE TSQL2012GOSELECT COUNT(NAME) AS COUNT_NAMEFROM dbo.TestDataSELECT COUNT(ALL NAME) AS COUNT_ALLNAMEFROM dbo.TestDataSELECT COUNT(DISTINCT NAME) AS COUNT_DISTINCTNAMEFROM dbo.TestData

sqlserver,簡單查詢

此時我們能夠很清楚的看到COUNT(colName)和COUNT(ALL colName)的結果是一樣的,其實COUNT(ALL colName)是默認的選項且包括所有非空值,換句話說ALL根本不需要我們去指定。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人性生交大片免费观看嘿嘿视频| 国产精品久久久久秋霞鲁丝| 亚洲精品成人网| 亚洲国产天堂久久综合| 亚洲国产日韩欧美在线图片| 国内成人精品一区| 91色琪琪电影亚洲精品久久| 欧美亚洲激情视频| 日本午夜人人精品| 欧美日韩亚洲激情| 国产女精品视频网站免费| 久久69精品久久久久久国产越南| 亚洲精品视频久久| 亚洲精品之草原avav久久| 国产精品91免费在线| 国产精品久久久久久久7电影| 国内外成人免费激情在线视频网站| 欧美一级视频在线观看| 26uuu亚洲伊人春色| 日日噜噜噜夜夜爽亚洲精品| 91精品久久久久久久久| 精品女厕一区二区三区| 国产精品免费视频xxxx| 国产日韩欧美91| 国产精品久久久久久久久免费看| 欧美在线一级va免费观看| 久久综合九色九九| 亚洲成人国产精品| 精品国产一区二区三区久久久| 精品国产91久久久| 国内精品久久久久影院优| 国产v综合ⅴ日韩v欧美大片| 91免费人成网站在线观看18| 国内精品久久久久久影视8| 日韩精品日韩在线观看| 色无极影院亚洲| 日韩中文在线中文网在线观看| 日韩av三级在线观看| 久久99精品久久久久久琪琪| 午夜精品福利视频| 亚洲女人被黑人巨大进入al| 欧美第一黄网免费网站| 欧美日韩国产精品一区| 国产精品美女主播| 亚洲免费电影一区| 亚洲香蕉伊综合在人在线视看| 久久成人18免费网站| 国产精品国产自产拍高清av水多| 国产精品亚洲激情| 久久精品国产2020观看福利| 亚洲精品综合久久中文字幕| 91精品中国老女人| 久久五月情影视| 欧美中文字幕在线| 国产精品亚洲美女av网站| 日韩免费av在线| 亚洲电影免费观看高清| 国产精品高潮呻吟久久av无限| 国产男人精品视频| 2019中文字幕在线| 在线观看国产精品91| 欧美极度另类性三渗透| 欧美日韩中文字幕在线| 亚洲国产精品成人av| 91在线观看欧美日韩| 欧美激情精品久久久久久蜜臀| 久久精品视频va| 久热精品视频在线| 日韩精品中文字幕在线播放| 欧美怡红院视频一区二区三区| 国产第一区电影| 人九九综合九九宗合| 国产99久久精品一区二区| 欧美噜噜久久久xxx| 国产亚洲成av人片在线观看桃| 日韩av在线免费观看一区| 欧美精品成人91久久久久久久| 亚洲深夜福利视频| 国产精品久久久久91| 亚洲精品久久久久久久久| 国内精品400部情侣激情| 色爱av美腿丝袜综合粉嫩av| 色婷婷久久av| 91在线|亚洲| 欧美精品电影免费在线观看| 精品久久久久久中文字幕大豆网| 亚洲男人天堂九九视频| 亚洲精品天天看| 国产精品久久久久久av福利软件| 亚洲福利视频在线| 日韩有码视频在线| 成人信息集中地欧美| 欧美xxxx14xxxxx性爽| 日韩av在线高清| 日韩视频精品在线| 亚洲第一中文字幕在线观看| 蜜月aⅴ免费一区二区三区| 精品爽片免费看久久| 国产中文字幕91| 欧美日韩国产综合新一区| 日韩av中文字幕在线免费观看| 国产精品mp4| 98视频在线噜噜噜国产| 色哟哟网站入口亚洲精品| 成人av在线网址| 欧美精品久久久久久久久| 国产精品亚洲аv天堂网| 秋霞成人午夜鲁丝一区二区三区| 国产精品久久色| 久久久久久免费精品| 97在线看福利| 亚洲乱亚洲乱妇无码| 久久久国产精品亚洲一区| 久久久久久久av| 91亚洲精品久久久| 97视频免费看| 国产一区二区成人| 国产精品久久久久久久久久久新郎| 国产精品尤物福利片在线观看| 久久久免费在线观看| 国产成人在线播放| 久久久久久久电影一区| 久久精品99无色码中文字幕| 日韩在线中文字| 久久精品国产2020观看福利| 日韩小视频在线观看| 日韩69视频在线观看| 91精品久久久久久久| 亚洲天堂av图片| 中文在线资源观看视频网站免费不卡| 欧美精品久久久久久久| 国产乱人伦真实精品视频| 国产成人精品国内自产拍免费看| 日韩中文字幕不卡视频| 亚洲色图校园春色| 亚洲国产美女精品久久久久∴| 欧美激情日韩图片| 成人av在线天堂| 欧美最猛黑人xxxx黑人猛叫黄| 最近2019中文免费高清视频观看www99| 亚洲少妇激情视频| 日韩精品有码在线观看| 久久天天躁狠狠躁老女人| 欧美日韩另类字幕中文| 日韩av免费在线看| 亚洲视频日韩精品| 久久6免费高清热精品| 亚洲欧洲视频在线| 日韩欧美中文在线| 成人做爰www免费看视频网站| 成人伊人精品色xxxx视频| 国产精品久久久久久久美男| 欧美日韩午夜激情| 日韩中文字幕在线播放| 日本精品视频在线| 国产精品高清在线| 亚洲一区二区三区四区在线播放| 国语自产精品视频在线看一大j8| yellow中文字幕久久| 国产免费观看久久黄| 91中文精品字幕在线视频| 久久国产精品网站| 色噜噜国产精品视频一区二区| 中文字幕视频在线免费欧美日韩综合在线看|