`
wandejun1012
  • 浏览: 2736896 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

case when 用法

 
阅读更多

Tag:case when select  

 

case when一般是放在select里面或者where里面的,用来动态生成某些字段用的。

 

1、看一个例子:

 

  select 
  (select domain_text_${def:locale} from t_domain 
  where namespace=(
  case when (${fld:ticketcate}='0' )then 'Inquiry_Category1'
   when (${fld:ticketcate}='1' )then 'Challenge_Category1'
   when (${fld:ticketcate}='2' )then 'Advice_Category1'
  else '' end)
  and domain_value = tc.category1) as category1

from table_a

 

 

2、case when甚至更强大,可以在里面嵌套SELECT语句,看一个例子:

 

select 
		case when nvl((select isshowdownload from t_staff where userlogin='admin002'),'')='1' then 
		'<input type="button" name="downloadbtn" onclick="downloadthisticket(this)" value="下载" class="cmd" style="display: inline;"  >'
		else 
		'<input type="button" name="downloadbtn" onclick="downloadthisticket(this)" value="下载" class="cmd" style="display: inline;" disabled >'
		end as download,
		cc_cue_inquiry.createdby as createdby,cc_cue_inquiry.created as created,cc_cue_inquiry.contact as contact,cc_cue_inquiry.subdealtime as subdealtime,(select d.domain_text_cn from t_domain d where d.namespace='TICKETCATEGORY' and d.domain_value = cc_cue_inquiry.ticketcategory limit 1) as ticketcategory,cc_cue_inquiry.tuid as tuid,(select d.domain_text_cn from t_domain d where d.namespace='CUEDealStatus' and d.domain_value = cc_cue_inquiry.deal_status limit 1) as deal_status
		
from	     

	${table}

 

 3、如果有一个需求,当字段A包含中国这2个字时,将其显示为中国万岁,否则按原样输出,写法:

 

SELECT  
case when LOCATE('bankCardNumber',request)>0 then SUBSTR(request,LOCATE('bankCardNumber',request)+15,19)
when LOCATE('pan',request)>0 then SUBSTR(request,LOCATE('pan',request)+4,16)
when LOCATE('cardNo',request)>0 then SUBSTR(request,LOCATE('cardNo',request)+7,19)
end
as '卡号'
,operator as '绑卡者',operate_time as '绑卡时间',
case when result_msg is null then '绑卡成功'
else result_msg end
 as '绑卡结果'
  FROM tb_pay_record_log WHERE operator IN(
'吴桥'
)

 观察代码中的else 后面的result_msg,直接写原字段名,这样就可以将它原样输出了。

 

 

refurl:http://www.cnblogs.com/traceman/archive/2007/03/14/673954.html

 

 

 

分享到:
评论

相关推荐

    Oracle_case_when_用法

    ### Oracle CASE WHEN 用法详解 #### 一、概述 在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`...

    case when和sum case when 写法及拼接字段

    ### Case When 用法 在 SQL 查询语言中,`CASE WHEN` 结构是一种非常有用的工具,可以用来根据条件返回不同的值。它的工作原理类似于编程语言中的 `if...else` 语句,但在 SQL 中用于创建动态列或进行复杂的条件...

    oracle case when 语句的用法详解

    1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex ... CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法 代码如下:SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位

    SQL Server中Case 的不同用法

    以下是对CASE关键字在SQL Server中不同用法的详细解释: 1. **在SELECT语句中的基本用法**: CASE表达式通常在SELECT语句中用来根据特定条件为数据列创建新的计算字段。例如,你可以根据书籍的价格范围给价格打...

    MySQL性能优化的最佳21条经验

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其性能优化对于任何依赖于它的应用程序来说都是至关重要的。以下是从"MySQL性能优化的最佳21条经验"中提取的一些关键知识点: 1. **索引优化**:索引是提升查询...

    c#中switch case的用法实例解析

    下面我们将深入探讨`switch`和`case`的用法,并基于提供的代码片段进行详细解释。 首先,`switch`语句通常包含一个表达式,该表达式的结果将被用来匹配`case`子句中的常量。在示例中,这个表达式是`n`,它存储了...

    Case_When用法

    标题《Case_When用法》为我们提供了一个深入学习SQL中Case表达式使用方法的契机。在SQL中,Case表达式是一个条件分支结构,允许在查询中进行条件判断,并基于条件返回不同的结果。该表达式分为两种格式:简单Case...

    SQL case_when用法

    本文档介绍了SQL中case...when的用法。

    SQL中Case语句用法讨论_BJ

    SUM(CASE WHEN sex = '1' THEN population ELSE 0 END) AS male_population, SUM(CASE WHEN sex = '2' THEN population ELSE 0 END) AS female_population FROM Table_A GROUP BY country; ``` 2. **数据清洗...

    MySQL的CASE WHEN语句的几个使用实例

    在这个实例中,我们将深入理解如何使用CASE WHEN,并通过几个具体的例子来演示其用法。 首先,我们来看一个简单的使用CASE WHEN进行字符串替换的例子。在这个示例中,我们有一个名为sales的表,其中包含了category...

    sql中的case用法

    SQL 中 Case 用法 Case 语句是 SQL 中一种强大的语句,用于根据不同的条件执行不同的操作。它可以用来实现复杂的逻辑操作,并且可以与其他 SQL 语句结合使用以实现更加复杂的查询。 SQL 中 Case 语句有两种格式:...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    Sql_Case_When用法用例[参考].pdf

    Sql_Case_When用法用例[参考].pdf

    SQL__case_when_then_的用法

    SQL__case_when_then_的用法

    case when then语句用法

    该语句的执行过程是:将CASE后面表达式的值与各WHEN子句中的表达式的值进行比较,如果两者相等,则返回THEN后的表达式的值,然后跳出CASE语句,否则返回ELSE子句中的表达式的值。ELSE子句是可选项。当CASE语句中不...

    SqlServer使用 case when 解决多条件模糊查询问题

    在SQL Server中,`CASE WHEN` 语句是一种强大的逻辑表达式,用于处理基于不同条件的复杂查询。在多条件模糊查询中,`CASE WHEN` 可以避免在...了解并熟练掌握`CASE WHEN` 的用法,可以提升SQL编程的灵活性和实用性。

    CASE的用法 (Transact-SQL)

    ### CASE的用法 (Transact-SQL) #### 概述 `CASE` 是 Transact-SQL 中一个非常重要的关键字,用于根据不同的条件返回不同的结果。它支持两种主要的格式:简单表达式和搜索表达式。这两种格式都能有效地帮助开发者...

    mysql存储过程之case语句用法实例详解

    简单CASE语句主要用于比较一个表达式(case_expression)与一系列预定义的值(when_expression)。基本语法如下: ```sql CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 ...

    SQLsevrer CASE用法

    SUM(CASE WHEN sex = '1' THEN population ELSE 0 END) AS male_population, SUM(CASE WHEN sex = '2' THEN population ELSE 0 END) AS female_population FROM Table_A GROUP BY country; ``` 这里,`CASE` ...

Global site tag (gtag.js) - Google Analytics