SQL Server中 Case When 函数 与 Access中 IIF 函数的应用
时间:2019-04-23 13:13 来源:linux.it.net.cn 作者:IT
SQL Server中的判断语句:
case 判断对象 when 判断条件 then 条件为真的场合返回的结果
else 其他的场合返回的结果
end
首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁SELECT <myColumnSpec> =
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁CASE
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <A> THEN <somethingA>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <B> THEN <somethingB>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁ELSE <somethingE>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁END
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁USE pubs
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁GO
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁SELECT
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 Title,
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 'Price Range' =
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 CASE
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price IS NULL THEN 'Unpriced'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price < 10 THEN 'Bargain'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price BETWEEN 10 and 20 THEN 'Average'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 ELSE 'Gift to impress relatives'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 END
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁FROM titles
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁ORDER BY price
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁GO
例如:
case Column1
when '1' then '男'
when '2' then '女'
else '其他'
end
也可以是这个样子:
case
when RIGHT(b.salesDate,2)='01' or RIGHT(b.salesDate,2)='02' or RIGHT(b.salesDate,2)='03' then left(b.salesDate,4)+'Q1'
when RIGHT(b.salesDate,2)='04' or RIGHT(b.salesDate,2)='05' or RIGHT(b.salesDate,2)='06' then left(b.salesDate,4)+'Q2'
when RIGHT(b.salesDate,2)='07' or RIGHT(b.salesDate,2)='08' or RIGHT(b.salesDate,2)='09' then left(b.salesDate,4)+'Q3'
when RIGHT(b.salesDate,2)='10' or RIGHT(b.salesDate,2)='11' or RIGHT(b.salesDate,2)='12' then left(b.salesDate,4)+'Q4'
end
在Access中没有 case when 语句,对应的是 IIF() 函数
IIF(判断条件, 条件为真的场合返回的结果, 条件为假的场合返回的结果)
例如:
SELECT iif( isnull(Column1),2,Column1 ) FROM TableName
(责任编辑:IT)
SQL Server中的判断语句: case 判断对象 when 判断条件 then 条件为真的场合返回的结果 else 其他的场合返回的结果 end 首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下: sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁SELECT <myColumnSpec> = sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁CASE sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <A> THEN <somethingA> sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁WHEN <B> THEN <somethingB> sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁ELSE <somethingE> sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁END sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子: sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁USE pubs sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁GO sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁SELECT sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 Title, sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 'Price Range' = sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 CASE sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price IS NULL THEN 'Unpriced' sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price < 10 THEN 'Bargain' sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 WHEN price BETWEEN 10 and 20 THEN 'Average' sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 ELSE 'Gift to impress relatives' sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 END sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁FROM titles sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁ORDER BY price sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁GO 例如: case Column1 when '1' then '男' when '2' then '女' else '其他' end 也可以是这个样子: case when RIGHT(b.salesDate,2)='01' or RIGHT(b.salesDate,2)='02' or RIGHT(b.salesDate,2)='03' then left(b.salesDate,4)+'Q1' when RIGHT(b.salesDate,2)='04' or RIGHT(b.salesDate,2)='05' or RIGHT(b.salesDate,2)='06' then left(b.salesDate,4)+'Q2' when RIGHT(b.salesDate,2)='07' or RIGHT(b.salesDate,2)='08' or RIGHT(b.salesDate,2)='09' then left(b.salesDate,4)+'Q3' when RIGHT(b.salesDate,2)='10' or RIGHT(b.salesDate,2)='11' or RIGHT(b.salesDate,2)='12' then left(b.salesDate,4)+'Q4' end 在Access中没有 case when 语句,对应的是 IIF() 函数 IIF(判断条件, 条件为真的场合返回的结果, 条件为假的场合返回的结果) 例如: SELECT iif( isnull(Column1),2,Column1 ) FROM TableName (责任编辑:IT) |