T-SQL:流程控制 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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2012-12-25 11:43  ylbtech  阅读(1127)  评论(0编辑  收藏  举报