代码改变世界

SQL之 case when then

2010-01-15 13:16  smat  阅读(222)  评论(0编辑  收藏  举报

 视图查询中怎样将原定于如性别sex 这样的字段,字段值为0,1这样的int类型值,查询时直接返回varchar 型的字符‘男’,‘女’以便于我们读取呢?

       有人会想到if …else…这样的语句,可是怎么加,都不知道加哪里,因为总是会出错。其实sql中有一个函数能解决这样的查询读取值的问题。那就是下 面要介绍的  Case 函数了。

       Case  是计算条件列表并返回多个可能的结果表达式之一。

       Case  有两种格式:

  • 简单 Case 函数将某个表达式与一组简单表达式进行比较以确定结果。
  • Case  搜索函数计算一组布尔表达式以确 定结果。
    两种格式均支持可选的 ELSE 参数。

   语法

     1. CASE input_expression  WHEN when_expression THEN result_expression    [ ...n ]     [ELSE else_result_expression ] END

     2. CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END

   例子

    1.语法实例:

     SELECT Name,Age,CASE Gender WHEN 1 THEN '女' WHEN 2 THEN '男' ELSE '未填' END AS Genders FROM dbo.Contacter_Detail

    2. 语法实例:

    SELECT Name,Age,CASE WHEN Gender = 1 THEN '女' WHEN .Gender = 2  THEN '男' ELSE '未填' END AS Genders,

    FROM dbo.Contacter_Detail

    两者返回的结果是一样。很简单,一定记住后面表达式后面有个END结尾呢!