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,
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |