0
A
回答
0
要理解這兩者之間的區別,你必須考慮SQL語句的經典結構:
SELECT ...
FROM ...
WHERE ...
ORDER BY ...;
例如,如果你認爲所謂的「襯衫」 500行表,讓我們通過選擇它們的所有500開始:
-- first example: all rows as stored
SELECT
name,
color,
size,
maker
FROM shirts
ORDER BY name;
接下來,讓我們添加一個WHERE子句。這用於將最終結果集中返回的行限制爲僅匹配某些指定條件的行。例如,你可以說「WHERE顏色=‘白色’」返回一組小的(比方說)80行:
-- second example: only some rows
SELECT
name,
color,
size,
maker
FROM shirts
WHERE color = 'white'
ORDER BY name;
CASE語句提供完全不同的功能:它通常是SELECT子句的一部分 - 它本身不是一個單獨的條款 - 並用於以某種方式重新格式化您收到的輸出。因此,與一個case語句,你仍然會得到所有500行回來,但因爲他們在我的第一個例子您的結果不會看起來是一樣的:
-- third example: all rows, but color field is tweaked
SELECT
name,
(CASE WHEN color = 'white' THEN 'white' ELSE 'other' END) AS tweaked_color,
size,
maker
FROM shirts
ORDER BY name;
在我的第一個例子,你會看到各種在這第三個例子中,您將看到80行「白色」,420行「其他」,其中「白色」,「黑色」,「棕色」,「黃色」 。
希望能幫助我們弄清楚區別。
P.S.請注意,爲了清晰起見,我在示例中以一種不尋常的方式排列了空白。你如何排列空白對語法沒有任何影響。我還在CASE聲明中添加了一對不必要的括號,以幫助增加視覺清晰度;這些也通常會被省略。
相關問題
- 1. 如何在WHERE子句中使用CASE WHEN?
- 2. qpropretyanimation最好使用
- 3. 最好mysql_fetch_array使用
- 4. 最好使用EL
- 5. 使用CASE WHEN
- 6. 如何使用CASE WHEN SQL
- 7. 如何在DataColumn.Expression中使用CASE WHEN?
- 8. 如何在MAX中使用GROUP_CONCAT(CASE WHEN ...)?
- 9. 如何在WHERE子句中使用CASE
- 10. 如何在使用ADO.NET時最好地顯示進度信息?
- 11. 如何在使用linq時最好地清理SQLDataReader
- 12. 最好使用join或append?
- 13. 在SQLite數據庫上實現文本搜索時,何時最好使用全文搜索,何時在SELECT查詢中最好使用LIKE?
- 14. 在mysql中調用很多字段時最好使用*
- 15. 在object.initialize中,最好使用self。在@?
- 16. 如何最好地使用GPS數據?
- 17. 在'where'子句中使用'case when'時發生的問題sql server
- 18. 位圖最好使用
- 19. 什麼時候最好在PHP中使用異常?
- 20. 在使用遠程REST API時最好處理異步調用
- 21. SQL Server CASE何時在WHERE子句中
- 22. SQL如何使用CASE WHEN查詢
- 23. 如何使用T-SQL的Case/When?
- 24. 最好用C
- 25. 當不可變對象不能在java中使用時,最好使用mutable?
- 26. 如何最好配置JS運行時?
- 27. 何時使用「case」以及何時使用「with select」
- 28. 在php mysql中使用「case ... when」時返回數據錯誤null?
- 29. 使用CASE WHEN和GROUP BY
- 30. 使用'case when'後功能
'CASE WHEN'是一個表達式,可讓您爲每一行更改或生成值。 'WHERE'改變你得到的行。他們不能用來完成相同的工作。 –