子查詢的易錯點

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速查手冊》,轉載請註明出處!!!

發佈了109 篇原創文章 · 獲贊 40 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章