zoukankan      html  css  js  c++  java
  • sql server 【while】,【case】,【if..else ...】,【try catch .】对象

    前面我们说了一下,存储过程和视图,

    下面我们来简单的了解下数据库中 while ,case ,if ..else 这几个对象

    1 while

    while 是根据它接到bool值是true还是false 来执行重复操作的一个命令对象。

    语法:

    while 条件

    begin

    .....

    end

    示例

    DECLARE @start INT
    set @start=1
    WHILE @start<=10
    BEGIN
     PRINT @start
     SET @start=@start+1
    END

    2 case

    case 根据一套逻辑返回一个特定的值,
    DECLARE @value INT
    SET @value=1
    SELECT CASE @value
    WHEN 1 THEN 'guanbi'
    WHEN 2 THEN 'dakai'
    END

    上面这个例子返回的结果是,如下图

    而下面这个case 语句返回则是,如下图

    DECLARE @value INT
    SET @value=1
    SELECT CASE @value
    WHEN 1  THEN '关闭'
    WHEN 2 THEN '打开'
    END

     

    大家会注意看到,如果 THEN 后面加的是中文 ,则返回的结果是“?” ,也许别的版本数据库不会出现这种情况,我没有试过,本人用的是sql server 2005 ,

    3 if ...else

    这个相对上面那两个大家应该会陌生吧,如果条件,则执行该条件的sql 语句,反则执行下一个条件的sql 语句,下面我们还是拿一个简单例子来说明这一点。

    语法

    if 条件

      要执行的语句

    else

         要执行的语句

    示例

    DECLARE @i INT
    SET @i=1
    WHILE (@i<=(SELECT COUNT(*) FROM chengji))
    BEGIN
     SELECT xingming
        ,fenshu
        ,CASE fenshu
           WHEN 100 THEN 'youxiu'
           WHEN 60 THEN 'hege'
           WHEN 30 THEN 'buhege'
         END
     FROM chengji
     SET @i=@i+1
    END

     4 try   ... catch ...

    示例:

    BEGIN TRY
      DECLARE @X INT
      -- Divide by zero to generate Error
      SET @X = 1/0
      PRINT 'Command after error in TRY block'
    END TRY
    BEGIN CATCH
      PRINT 'Error Detected'
    END CATCH

     

    到这里,这几个简单的数据库对象介绍完了,当然这些都是皮毛而已,虽然是这样,但这也是基础,再复杂的脚本都是多个简单脚本的组成的,被称为复合的简单性,只要我们把这些最简单一点点的积聚起来,我们也能像他们一样,写出令人另眼相看的sql 语句. 

  • 相关阅读:
    HashMap源码分析
    Vector和Stack源码分析/List集合的总结
    LinkedList源码分析
    ArrayList源码分析
    第三章 数据链路层(三)
    Java常考面试题(五)
    hibernate(一) 第一个hibernate工程
    回想过去,展望未来
    “Cannot load php5apache2_4.dll into server”问题的解决方法
    win7下80端口被(Pid=4)占用的解决方法
  • 原文地址:https://www.cnblogs.com/dekevin/p/2612490.html
Copyright © 2011-2022 走看看