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) |