午夜阳光

每天一步。。。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一、使用IF/ELSE关键字。
    
IF...ELSE 指定 Transact-SQL 语句的执行条件。如果满足条件,则在 IF 关键字及其条件之后执行 Transact-SQL 语句:布尔表达式返回 TRUE。可选的 ELSE 关键字引入另一个 Transact-SQL 语句,当不满足 IF 条件时就执行该语句:布尔表达式返回 FALSE
1、语法 
     IF Boolean_expression 
         { sql_statement | statement_block } 
     [ ELSE 
         { sql_statement | statement_block } ] 
2、参数 
Boolean_expression 
       返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,则必须用括号将 SELECT 语句括起来。
{ sql_statement | statement_block } 
       任何 Transact-SQL 语句或用语句块定义的语句分组。除非使用语句块,否则 IF 或 ELSE 条件只能影响一个 Transact-SQL 语句的性能。 
若要定义语句块,请使用控制流关键字 BEGIN  END
3、示例 
    假设有一学生表(student),表中有两列为名称(name)和年龄(age):
     IF((SELECT COUNT(name) FROM student WHERE name='张三')>0)
        BEGIN
             UPDATE student SET age='22' WHERE name='张三'
        END
     ELSE
        INSERT INTO student (name,age) VALUES ('张三','22')

二、使用CASE语句。

【CASE】语句主要有以下两种格式
格式1
Case <算术表达式>
     When<算术表达式>  then <算术表达式>
      ........................
     When<算术表达式>  then <算术表达式>
    [Else <算术表达式>]
End

格式2:
Case 
    When<算术表达式>  then <算术表达式>
    ...........................
    When<算术表达式>  then <算术表达式>
    [Else <算术表达式>]
End

例:给学生的成绩评定等级
    >=85优秀
    >=70 良好
    >=60 及格
    其他  不及格
   Select    姓名,成绩, 
              Case 
                   When 成绩>=85 then ’优秀’
                   When 成绩>=70 then ‘良好’
                   When 成绩>=60 then ‘及格’
                   Else ‘不及格’
               End as 等级
      From 学生表

posted on 2008-04-14 13:42  午夜迎风  阅读(4101)  评论(0编辑  收藏  举报