mysql能用case嵌套sql吗,关于sqlserver中查询语句中嵌套case语句使用方法
ryxxlong的博客 Sql server 中的 CASE 語(yǔ)句文章, 鏈接 http://ryxxlong.iteye.com/blog/531221 寫(xiě)的比較詳細(xì),具體內(nèi)容如下,主要用于自己以后方便查詢 CASE 具有兩種式: Simple CASE function: CASE input_expression WHEN when_expression THEN result_ex
ryxxlong的博客Sql
server 中的 CASE 語(yǔ)句文章,
鏈接http://ryxxlong.iteye.com/blog/531221
寫(xiě)的比較詳細(xì),具體內(nèi)容如下,主要用于自己以后方便查詢
CASE 具有兩種格式:
Simple CASE function: CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Searched CASE function:
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
A. 使用帶有簡(jiǎn)單 CASE 函數(shù)的 SELECT 語(yǔ)句
在 SELECT 語(yǔ)句中,簡(jiǎn)單 CASE 函數(shù)僅檢查是否相等,而不進(jìn)行其他比較。以下示例使用 CASE 函數(shù)更改產(chǎn)品系列類別的顯示,以使這些類別更易理解。
USE AdventureWorks;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO
B. 使用帶有簡(jiǎn)單 CASE 函數(shù)和 CASE 搜索函數(shù)的 SELECT 語(yǔ)句
在 SELECT 語(yǔ)句中,CASE 搜索函數(shù)允許根據(jù)比較值在結(jié)果集內(nèi)對(duì)值進(jìn)行替換。下面的示例根據(jù)產(chǎn)品的價(jià)格范圍將標(biāo)價(jià)顯示為文本注釋。
USE AdventureWorks;
GO
SELECT ProductNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Production.Product
ORDER BY ProductNumber ;
GO
以上內(nèi)容來(lái)自Sql server 2005幫助文檔
其他Case語(yǔ)句實(shí)例:
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
FROM titles
ORDER BY price
GO
這是 CASE 的典型用法,但是使用 CASE 其實(shí)可以做更多的事情。比方說(shuō)下面的 GROUP BY 子句中的 CASE:
SELECT 'Number of Titles', Count(*)
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
GO
你甚至還可以組合這些選項(xiàng),添加一個(gè) ORDER BY 子句,如下所示:
USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
GO
注意,為了在 GROUP BY 塊中使用 CASE,查詢語(yǔ)句需要在 GROUP BY 塊中重復(fù) SELECT 塊中的 CASE 塊。
這部分內(nèi)容來(lái)自: http://database.ctocio.com.cn/tips/76/7000576.shtml
注意:Simple CASE Function不能用來(lái)判斷null值.
如果 case 表達(dá)式1 null then 0 else 表達(dá)式2, 它永遠(yuǎn)是執(zhí)行表達(dá)式2,即使表達(dá)式1的值是null
應(yīng)該這樣寫(xiě): case when 表達(dá)式1 is null then 0 else 表達(dá)式,
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的mysql能用case嵌套sql吗,关于sqlserver中查询语句中嵌套case语句使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信一键关注 php,微信公众平台开发一
- 下一篇: php添加管理员页面完整代码,php –