【正文】
r Details(訂單明細)表存在折扣則查詢Orders(訂單)表: SELECT orderid,customerid FROM orders WHERE EXISTS (SELECT * FROM [order details] WHERE discount0) 比較子查詢 在比較子查詢中,如果沒有使用 ALL或ANY修飾,則必須保證子查詢所返回的結(jié)果集合中只有單行數(shù)據(jù),否則將引起查詢錯誤,如果比較操作與 ALL或 ANY修飾一起使用,這時則允許子查詢返回多個數(shù)據(jù)行。 例 :從 Products(產(chǎn)品)表中檢索前 10條記錄,并按照 UnitPrice和 ProductName進行升序排列。重復(fù)應(yīng)用這些組合就可以將多條組合到一個單獨的復(fù)合條件中。 INTO子句:說明用查詢結(jié)果集合創(chuàng)建一個新表。 在 WHERE子句中使用列表運算符 IN運算符用于測試給定的值是否在一個子查詢或項目列表中,其語法格式如下: 表達式 [NOT ] IN(列表 1,列表 2……… ) 在 WHERE子句中使用空值運算符 下面查詢說明在 Customers(顧客)表中查詢 Region(區(qū)域)不為空的記錄: SELECT * FROM customers WHERE region IS NOT NULL 在 WHERE子句中使用邏輯運算符 NOT用于對一個布爾表達式的值取反,它通常與 LIKE、 BETWEEN、 IN、 NULL等關(guān)鍵字一起使用。A00139。 UNION ALL SELECT panyname,contactname,address FROM customers WHERE country=39。 SELECT customerid AS 客戶代碼 , COUNT(customerid) AS 客戶訂單總數(shù) FROM orders GROUP BY customerid 使用 MAX、 MIN函數(shù) MAX、 MIN函數(shù)用于返回表達式中的最大、最小值,在計算過程中遇到 NULL值時予以忽略, MAX函數(shù)的語法格式如下: MAX|MIN( [ALL|DISTINCT]表達式) 例 :需要在 Products(產(chǎn)品)數(shù)據(jù)表中查找UnitPrice(單價)最大和最小的產(chǎn)品,查詢語句如下: SELECT productid,unitprice FROM products WHERE unitprice=(SELECT MAX(unitprice) FROM products) OR unitprice=(SELECT MIN(unitprice) FROM products) 創(chuàng)建查詢結(jié)果表 通過在 SELECT語句中使用 INTO子句,可以創(chuàng)建一個新的數(shù)據(jù)表并將查詢結(jié)果中的記錄添加到該表中,用戶在執(zhí)行一個帶有 INTO子句的 SELECT語句時,必須擁有在目標數(shù)據(jù)庫中創(chuàng)建表的權(quán)限, INTO子句的語法格式如下: INTO 新表名 例 :從 Orders(訂單)表中選擇 CustomerID (客戶號)為 VINET的 記錄,并將對象存 放在一個名為 “ VINETOrders”的臨時表 中,所用語法如下: SELECT * INTO OrdersC015 FROM Orders WHERE CustomerID=39。 SELECT productid, AVG(quantity) AS 平均數(shù)量 FROM [order details] GROUP BY productid 使用 COUNT函數(shù) COUNT函數(shù)用于統(tǒng)計字段中選取的項目數(shù),或查詢輸出的記錄行數(shù), 其語法格式如下: COUNT( {[[ALL|DISTINCT] 表達式 ]|*}) COUNT函數(shù)有下面三種用法: ( 1) COUNT( *):返回組中的項目數(shù),包括 NULL值和重復(fù)的值在內(nèi)。 UNION ALL比 UNION需要的計算資源少 。 使用 HAVING子句 在使用 GROUP BY子句時,還可以使用HAVING子句為分組統(tǒng)計進一步設(shè)置統(tǒng)計條件, HAVING子句用于指定一組或