日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

COALESCE()、isnull()、nullif()函数的用法

發布時間:2024/4/17 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COALESCE()、isnull()、nullif()函数的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csdn.net/baoshan/article/details/2907602 COALESCE()
用法 Select ?COALESCE(null,null,'1','2') 返回1
作用 返回其參數中第一個非空表達式。

isnull()
用法 Select? isnull(null,0) 返回 0
作用 遇到null 返回 指定值

nullif()
用法 nullif('aa','aa')? 返回 null,? nullif(1,2)? 返回 1
作用 兩個值相等則返回null http://blog.csdn.net/topsjava/article/details/1746152

NULLIF 函數

功能?

通過比較表達式提供縮寫的 CASE 表達式。

語法?

NULLIF?(?expression-1,?expression-2?)

參數?

expression-1????要比較的表達式。

expression-2????要比較的表達式。

用法?

NULLIF 比較兩個表達式的值。

如果第一個表達式的值與第二個表達式的值相等,NULLIF 返回 NULL。

如果第一個表達式的值不等于第二個表達式的值,或者第二個表達式為 NULL,則 NULLIF 返回第一個表達式。

NULLIF 函數提供了編寫某些 CASE 表達式的簡便方法。

標準和兼容性?
  • SQL/92????初級特性。

  • SQL/99????核心特性。

示例?

下面的語句返回值 a:

SELECT NULLIF( 'a', 'b' )

下面的語句返回 NULL。

SELECT NULLIF( 'a', 'a' ) ---------------------------------------------------------------------------------------------------

CASE 表達式

CASE 表達式提供條件 SQL 表達式。Case 表達式可以在能夠使用表達式的任何地方使用。

CASE 表達式的語法如下:

CASE?expression
WHEN?expression
THEN?expression,?...
[?ELSE?expression?]
END

如果 CASE 語句后的表達式等于 WHEN 語句后的表達式,則返回 THEN 語句后的表達式。否則,返回 ELSE 語句后的表達式(如果它存在)。

例如,以下代碼用 CASE 表達式作為 SELECT 語句的第二子句。

SELECT id, ( CASE name WHEN 'Tee Shirt' then 'Shirt' WHEN 'Sweatshirt' then 'Shirt' WHEN 'Baseball Cap' then 'Hat' ELSE 'Unknown' END ) as Type FROM "DBA".Product

可以替換的語法如下:

CASE
WHEN
?search-condition
THEN?expression,?...
[?ELSE?expression?]
END

如果滿足 WHEN 語句后的搜索條件,則返回 THEN 語句后的表達式。否則,返回 ELSE 語句后的表達式(如果它存在)。

例如,以下語句用 CASE 表達式作為 SELECT 語句的第三子句,以將字符串與搜索條件相關聯。

SELECT id, name, ( CASE WHEN name='Tee Shirt' then 'Sale' WHEN quantity >= 50 then 'Big Sale' ELSE 'Regular price' FROM "DBA".Product
用于簡寫 CASE 表達式的 NULLIF 函數?

NULLIF 函數提供了一種以短格式寫出某些 CASE 語句的方法。NULLIF 語法如下:

NULLIF?(?expression-1,?expression-2?)

NULLIF 比較兩個表達式的值。如果第一個表達式的值與第二個表達式的值相等,NULLIF 返回 NULL。如果它們不相等,NULLIF 則返回第一個表達式。

CASE 語句不同于 CASE 表達式?
不要將 CASE 表達式的語法和 CASE 語句的語法混淆。
------------------------------------------------------------------------------------

CASE 語句

說明?

此語句用于根據多種情況選擇執行路徑。

語法 1?

CASE?value-expression
WHEN?[?constant?|?NULL?]?THEN?statement-list?...
[?WHEN?[?constant?|?NULL?]?THEN?statement-list?]?...
[?ELSE?statement-list?]
END?CASE

語法 2?

CASE
WHEN
?[?search-condition?|?NULL]?THEN?statement-list?...
[?WHEN?[?search-condition?|?NULL]?THEN?statement-list?]?...
[?ELSE?statement-list?]
END?CASE

用法?

語法 1????CASE 語句是控制語句,它允許您根據表達式的值選擇要執行的 SQL 語句列表。 value-expression 是具有單值的表達式,它的值可以是字符串、數字、日期或其它 SQL 數據類型。如果 value-expression 的值存在匹配的 WHEN 子句,則執行 WHEN 子句中的 statement-list。如果沒有合適的 WHEN 子句而有 ELSE 子句,則執行 ELSE 子句中的 statement-list。執行在 END CASE 后的第一個語句重新開始。

如果 value-expression 可以為空,使用 ISNULL 函數用不同的表達式替換 NULL value-expression。

語法 2????在這種格式下,執行 CASE 語句中第一個滿足 search-condition 的語句。如果不滿足 search-conditions,則執行 ELSE 子句。

如果表達式可以為 NULL,對第一個 search-condition 使用以下語法:

WHEN search-condition IS NULL THEN statement-list
權限?

無。

副作用?

無。

標準和兼容性?
SQL/92????持久存儲模塊特性。
SQL/99????持久存儲模塊特性。
示例?

下面的過程使用 CASE 語句,將示例數據庫的產品表中列出的產品分為襯衣、帽子、短褲、未知幾大類。

CREATE PROCEDURE ProductType (IN product_id INT, OUT type CHAR(10)) BEGIN DECLARE prod_name CHAR(20); SELECT name INTO prod_name FROM "DBA"."product" WHERE id = product_id; CASE prod_name WHEN 'Tee Shirt' THEN SET type = 'Shirt' WHEN 'Sweatshirt' THEN SET type = 'Shirt' WHEN 'Baseball Cap' THEN SET type = 'Hat' WHEN 'Visor' THEN SET type = 'Hat' WHEN 'Shorts' THEN SET type 'Shorts' ELSE SET type = 'UNKNOWN' END CASE; END

下面的示例使用語法 2 生成關于示例數據庫中產品數量的消息。

CREATE PROCEDURE StockLevel (IN product_id INT) BEGIN DECLARE qty INT; SELECT quantity INTO qty FROM product WHERE id = product_id; CASE WHEN qty < 30 THEN MESSAGE 'Order Stock' TO CLIENT; WHEN qty > 100 THEN MESSAGE 'Overstocked' TO CLIENT; ELSE MESSAGE 'Sufficient stock on hand' TO CLIENT; END CASE; END

總結

以上是生活随笔為你收集整理的COALESCE()、isnull()、nullif()函数的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。