• TSQL:流程控制 4,Case 语句


    ylbtech-SQL Server:SQL Server-流程控制 4,Case 语句

     SQL Server 流程控制中的 Case 语句。

    1,Case 语句
     1 --=============================================================
     2 -- 1, Case语句
     3 -- Desc:Case语句也是条件判断的一种,可以完成比If语句更强的判断。在If语句中,如果需要判断很多的条件话
     4 -- ,将会用到大量的If嵌套。
     5 -- 判断条件越多时,用If语句的嵌套就会越多,代码看起来就越乱越复杂,可读性就越差。使用Case语句可以轻松
     6 -- 解决该问题。Case语句的语法代码有两种格式:一种是简单的Case代码,用于将某个表达式与一组简单的表达式
     7 -- 进行比较以确定结果;一种是搜索的Case代码,用于计算一组布尔表达式以确定结果。
     8 -- author:ylbtech
     9 -- pubdate:10:39 2012/12/15
    10 --=============================================================
    11 go
    12 
    13 go
    14 --=============================================================
    15 -- 2,Syntax
    16 -- Desc:简单的Case语法代码:
    17 --=============================================================
    18 Case input_expression
    19     When when_expression Then result_expression
    20     [...n]
    21     [Else else_result_expression]
    22 End
    23 
    24 --Remark:
    25 
    26 go
    27 --=============================================================
    28 -- 3,Example
    29 -- Desc:查看类别ID为2的类别名称。
    30 --=============================================================
    31 use Northwind
    32 go
    33 Declare @categoryName varchar(15)
    34 Declare @outStr varchar(100)
    35 
    36 select @categoryName=CategoryName from Categories
    37 where CategoryID=2
    38 
    39 Set @outStr=Case @categoryName
    40     When 'Confections' Then 'Category:Confections'
    41     When 'Dairy Products' Then 'Category:Dairt Products'
    42     When 'Saefood' Then 'Category:Seafood'
    43     Else 'Other'
    44 End
    45 
    46 Print @outStr
    47 
    48 go
    49 --=============================================================
    50 -- 4,Operation result
    51 --=============================================================
    52 --Other
    53 
    54 go
    55 --=============================================================
    56 -- B2,Syntax
    57 -- Desc:搜索的Case语法代码:
    58 --=============================================================
    59 Case
    60     When when_expression Then result_expression
    61     [...n]
    62     [Else else_result_expression]
    63 End
    64 
    65 --Remark:
    66 
    67 go
    68 --=============================================================
    69 -- B3,Example
    70 -- Desc:查看类别ID为2的类别名称。
    71 --=============================================================
    72 use Northwind
    73 go
    74 
    75 select ProductName, Case CategoryId
    76     When 1 Then 'Beverages'
    77     When 2 Then 'Condiments'
    78     When 3 Then 'Confections'
    79     When 4 Then 'Dairy Products'
    80     When 5 Then 'Grains/Cereals'
    81     When 6 Then 'Meat/Poulry'
    82     When 7 Then 'Produce'
    83     When 8 Then 'Seafood'
    84     Else 'Other'
    85     End As Category
    86  from Products
    87 
    88 go
    89 --=============================================================
    90 -- B4,Operation result
    91 --=============================================================
    92 --Chai    Beverages
    93 --Chang    Beverages
    94 --Aniseed Syrup    Condiments
    95 --Chef Anton's Cajun Seasoning    Condiments
    96 --Chef Anton's Gumbo Mix    Condiments

    1.2, case when clumnName is null then

     select case when sjfkje is null then pzje else sjfkje end as fkje from T_XMZX 

    1.3,

    select LEN(oldbm),case LEN(oldbm) when 7 then '0'+oldbm else oldbm end as 'oldbm' from temp_yb_dw_0711b

    1.4,

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    减小war包体积
    监视oracle执行的SQL语句(正在执行,已执行,执行性能查看)
    SqlServer性能检测和优化工具使用详细
    redis 超时失效key 的监听触发
    ActiveMQ实现延迟消息队列
    TDDL:来自淘宝的分布式数据层
    灰度发布
    Jenkins 定时构建和Poll SCM的区别
    SpringBoot 配置文件application.properties配置参数替换或者注入的几种方式
    HTML5基础 label 为input标签添加标记
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2832099.html
Copyright © 2020-2023  润新知