1.子查詢不能返回多個值
由於子查詢只能返回一個值,因此,如果子查詢的結果不是返回單個值,那麼系統就會發出錯誤信息。
例如,在SQL Server的編輯器中,輸入如下代碼:
SELECTcat_id,goods_name
FROMgoods
WHEREcat_id>(
SELECT*
FROMbrand
WHEREname='榮耀'
);
單擊工具欄上的運行按鈕,查詢結果如圖14.5所示。
圖14.5 子查詢返回多個值
2.子查詢中不能包含ORDER BY子句
例如,在SQL Server的編輯器中,輸入如下代碼:
SELECTcat_id,goods_name
FROMgoods
WHEREcat_id>(
SELECTcat_id
FROMbrand
WHEREname='榮耀'ORDERBYcat_id
);
單擊工具欄上的運行按鈕,查詢結果如圖14.6所示。
圖14.6 子查詢中不能包含ORDER BY子句
如果非要對數據進行排序的話,那麼只能在外查詢語句中使用ORDER BY子句。例如,將上面的代碼改寫爲:
SELECTcat_id,goods_name
FROMgoods
WHEREcat_id>(
SELECTcat_id
FROMbrand
WHEREname='榮耀'
)ORDERBYcat_id;
單擊工具欄上的運行按鈕,查詢結果如圖14.7所示。
圖14.7 在外查詢語句中使用ORDER BY子句
從結果中可以看出,cat_id的值按照從小到大的順序進行排列。
感謝讀者朋友對明日科技的支持,如果您對圖書中的講解及光盤源碼有任何問題,可以直接登錄http://www.mingrisoft.com上的社區進行發貼,把您的問題詳細的說明一下,我們的技術人員會在那裏給您回覆!
本文來自明日科技即將出版的《SQL速查手冊》,轉載請註明出處!!!