SQL?Server中的邏輯函數(shù)介紹
IIF: 根據(jù)布爾表達(dá)式計(jì)算為 true 還是 false,返回其中一個(gè)值。
IIF 是一種用于編寫 CASE 表達(dá)式的快速方法。 它將傳遞的布爾表達(dá)式計(jì)算為第一個(gè)參數(shù),然后根據(jù)計(jì)算結(jié)果返回其他兩個(gè)參數(shù)之一。也即,如果布爾表達(dá)式為 true,則返回 true_value;如果布爾表達(dá)式為 false 或未知,則返回 false_value。 true_value 和 false_value 可以是任何類型。
語(yǔ)法:
IIF ( boolean_expression, true_value, false_value )
舉例:
DECLARE @a int = 45, @b int = 40; SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;
CHOOSE: 從值列表返回指定索引處的項(xiàng)。
CHOOSE 像索引一樣進(jìn)入數(shù)組中,其中,數(shù)組由跟在索引參數(shù)之后的各參數(shù)組成。 索引參數(shù)確定將返回以下哪些值。從 1 開(kāi)始的索引
語(yǔ)法:
CHOOSE ( index, val_1, val_2 [, val_n ] )
舉例:下面的示例從所提供的值列表中返回第三項(xiàng)。
SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result; --返回Developer
舉例:以下示例返回雇傭員工時(shí)的季度。 MONTH 函數(shù)用于從 HireDate 列返回月份值。
USE AdventureWorks2012;
GO
SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',
'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired
FROM HumanResources.Employee
WHERE YEAR(HireDate) > 2005
ORDER BY YEAR(HireDate);COALESCE: 按順序計(jì)算變量并返回第一個(gè)不等于 NULL 的第一個(gè)表達(dá)式的當(dāng)前值
例如,SELECT COALESCE(NULL, NULL, 'third_value', 'fourth_value'); 返回第三個(gè)值,因?yàn)榈谌齻€(gè)值是首個(gè)為非 Null 的值。如果所有參數(shù)都為 NULL,則 COALESCE返回 NULL。
語(yǔ)法:
COALESCE ( expression [ ,...n ] )
舉例:
SELECT Name, Color, ProductNumber, COALESCE(Color, ProductNumber) AS FirstNotNull FROM Products ;

NULLIF:如果兩個(gè)指定的表達(dá)式相等,則返回空值。如果兩個(gè)表達(dá)式不相等,則 NULLIF 返回第一個(gè) expression 的值。
例如,SELECT NULLIF(4,4) AS Same, NULLIF(5,7) AS Different; 為第一列(4 和 4)返回 NULL,因?yàn)閮蓚€(gè)輸入值相同。 第二列返回第一個(gè)值 (5),因?yàn)閮蓚€(gè)輸入值不同。
舉例:
SELECT AVG(NULLIF(COALESCE(current_year, previous_year), 0.00)) AS 'Average Budget' FROM budgets;
到此這篇關(guān)于SQL Server邏輯函數(shù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于sql server批量插入和更新的兩種解決方案
對(duì)于sql 來(lái)說(shuō)操作集合類型(一行一行)是比較麻煩的一件事,而一般業(yè)務(wù)邏輯復(fù)雜的系統(tǒng)或項(xiàng)目都會(huì)涉及到集合遍歷的問(wèn)題,通常一些人就想到用游標(biāo),這里我列出了兩種方案,供大家參考2013-04-04
使用row_number()實(shí)現(xiàn)分頁(yè)實(shí)例
或許大家不知道,其實(shí)使用row_number()是可以實(shí)現(xiàn)分頁(yè)的,下面有個(gè)不錯(cuò)的示例,大家可以嘗試操作下2013-11-11
sql語(yǔ)句之?dāng)?shù)據(jù)操作介紹
表中數(shù)據(jù)的變化牽一發(fā)而動(dòng)全身,會(huì)同時(shí)導(dǎo)致到索引中數(shù)據(jù)的變化。因此如果查詢語(yǔ)句不需要索引,就應(yīng)該刪除無(wú)用的索引以提高效率。2013-03-03
insert select與select into 的用法使用說(shuō)明
將一個(gè)table1的數(shù)據(jù)的部分字段復(fù)制到table2中,或者將整個(gè)table1復(fù)制到table2中,這時(shí)候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復(fù)制語(yǔ)句了2011-12-12
SQLServer或Oracle卸載不完全導(dǎo)致安裝失敗的解決辦法
這篇文章主要介紹了SQLServer或Oracle卸載不完全導(dǎo)致安裝失敗的解決辦法,本文歸根結(jié)底的辦法就是利用cmd命令行將未卸載完全的插件或程序進(jìn)行完美卸載,文中介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
SQL?Server?DATEDIFF()?函數(shù)用法
這篇文章主要介紹了SQL?Server?DATEDIFF()?函數(shù)的定義和用法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12

