日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

select 查询例子集

發布時間:2025/3/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 select 查询例子集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ast1.查詢沒有折扣的商店

a.?

use pubs SELECT stor_id AS "store id" ,stor_name AS "Store Name" FROM stores WHERE stor_id NOT IN (SELECT stor_id FROM discounts WHERE stor_id IS NOT NULL)

b.

SELECT stor_id AS "store id" ,stor_name AS "Store Name" FROM stores WHERE stor_id in (SELECT stor_id FROM discounts WHERE stor_id IS NULL )

?

a?和?b?看似相同,但是a?有結果,而b卻沒有,因為stord_id如果是null?那怎把null值傳遞回去還是null

?

2.查詢有訂單的顧客的第一筆訂單。

USE Northwind select min(o.OrderID) AS ORDERID,o.CustomerID INTO #TEMP_ORDER from Orders o group by o.CustomerID order by CustomerID select o.OrderID ,o.CustomerID,o.OrderDate from Orders o inner join #TEMP_ORDER b on o.OrderID=b.OrderID order by o.CustomerID

#開頭命名的表為臨時表,存放在tempdb中,如用戶使用完畢后不手動刪除此臨時表,只要斷開northwind的連接(比如使用了其他數據庫?pubs)則臨時表自動被刪除。

?

3.?.查詢有訂單的顧客的第一筆訂單,從未有過訂單的顯示‘NERVER?ORDER’。

select cu.CompanyName, isnull(cast((select MIN(o.orderdate) from Orders o where o.CustomerID=cu.CustomerID)as varchar),'NERVER ORDERED' ) as "order date" from Customers cu

?

ISNULL?函數,ISNULL(<expression?to?test>,<replacement?value?if?null>)

其中還使用到了CAST,因為當‘order?date’列第一列結果返回的是date類型,但是后面碰到第一列是沒有訂單的,即'NERVER?ORDER'是varchar類型的,不能轉換成date類型,所以需要cast來強制轉換。cast?列?as?新類型。

?

4.尋找不僅訂購了?chocolade并且訂購了?Vegie-spread的用戶。

use Northwind select distinct c.CompanyName from Customers as c join ( select customerid from orders o join [Order Details] od on o.OrderID=od.OrderID join Products p on od.ProductID=p.ProductID where p.ProductName='chocolade') as spen on c.CustomerID=spen.CustomerID join (select customerid from Orders o join [Order Details] od on o.OrderID=od.OrderID join Products p on od.ProductID=p.ProductID where ProductName='vegie-spread') as spap on c.CustomerID=spap.CustomerID

這個查詢用到了派生表———由一個查詢結果集的列和行構成。

?

5.以MM/DD/YY?顯示結果

use Northwind select convert(varchar(10),HireDate,1) from Employees

CAST(expression?AS?data_type)

CONVERT(data_type,experession?[,style])

convert?和cast相比,多了一些日期格式轉換功能,但是convert不能代替cast!因為cast是ANSI兼容的,而convert?不是。

?

6.沒有定過單的用戶

use Northwind select cu.CompanyName from Customers cu where not exists (select o.CustomerID from orders o where cu.CustomerID=o.CustomerID)

EXISTS?一般用于聯合連接,因為需要外傳遞值進子查詢,然后子查詢返回?TRUE或者FALSE。

?

7.?用戶訂單總額超過25000美元,查出這些用戶的前五條訂單

select * from ( select *, row_number() over( PARTITION by customerid order by orderdate desc) rowid from ( select o.CustomerID,o.OrderID,o.OrderDate from Orders o inner join ( select o.CustomerID,sum(temp.price) as tprice from Orders o join (select od.OrderID, sum(od.ProductID*od.Quantity*(1-od.Discount) )as price from [Order Details] od group by od.OrderID) as temp on temp.OrderID=o.OrderID group by o.CustomerID having SUM(temp.price)>25000 )tmp on o.CustomerID=tmp.CustomerID ) aa )bb where rowid<=5

說明:返回結果集分區內行的序列號,每個分區的第一行從?1?開始。
語法:ROW_NUMBER?()?
OVER?(?[?<partition_by_clause>?]<order_by_clause>?)?。
備注:
ORDERBY?子句可確定在特定分區中為行分配唯一?ROW_NUMBER?的順序。
參數:
<partition_by_clause>?:將?FROM?子句生成的結果集劃入應用了?ROW_NUMBER?函數的分區。?
<order_by_clause>:確定將?ROW_NUMBER?值分配給分區中的行的順序。
返回類型:
bigint?。

轉載于:https://blog.51cto.com/kingheihei/1209059

總結

以上是生活随笔為你收集整理的select 查询例子集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。