zoukankan      html  css  js  c++  java
  • 【转】MSSQL 控制语句

     BEGIN…END

    其语法如下:
    BEGIN
    <命令行或程序块>
    END
    BEGIN…END用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行BEGIN…END经常在条件语句,如IF…ELSE中使用。
    在BEGIN…END中可嵌套另外的BEGIN…END来定义另一程序块。

    IF…ELSE

    其语法如下:
    IF <条件表达式>
    <命令行或程序块>
    [ELSE 
    [条件表达式]
    <命令行或程序块>]

    Note:如果不使用程序块,IF或ELSE只能执行一条命令。IF…ELSE可以进行嵌套。

    实例:

    View Code
    declare@x int,@y int,@z int
    select @x=1,@y=2, @z=3
    if@x>@y
      print'x>y' --打印字符串'x>y'
    else if@y>@z
    print'y>z'
        else print'z>y'
    运行结果如下
    z>y 
    注意:在Transact-SQL中最多可嵌套32级

     Case

    CASE 命令有两种语句格式:
    CASE <运算式>
    WHEN <运算式>THEN<运算式>
    … 
    
    WHEN<运算式>THEN<运算式>
    [ELSE<运算式>]
    END
    CASE
    WHEN 
    <条件表达式> THEN <运算式>
    WHEN <条件表达式> THEN <运算式>
    [ELSE 
    <运算式>]
    END

    实例:

    View Code
    第一种: 
    SELECT 
    CASE 
         WHEN price IS NULL THEN 'Not yet priced'
         WHEN price < 10 THEN 'Very Reasonable Title'
         WHEN price >= 10 AND price < 20 THEN 'Coffee Table Title'
         ELSE 'Expensive book!'
         END AS "Price Category",
         CONVERT(varchar(20), title) AS "Shortened Title"
    from pubs.dbo.titles
    ORDER BY price
    
    
    第二种:
    SELECT au_fname, au_lname, 
       CASE state
          WHEN 'CA' THEN 'California'
          WHEN 'KS' THEN 'Kansas'
          WHEN 'TN' THEN 'Tennessee'
          WHEN 'OR' THEN 'Oregon'
          WHEN 'MI' THEN 'Michigan'
          WHEN 'IN' THEN 'Indiana'
          WHEN 'MD' THEN 'Maryland'
          WHEN 'UT' THEN 'Utah'
          END AS StateName
    from pubs.dbo.authors
    ORDER BY au_lname 
    
    
    
    
    SELECT top 2 id, uid,cn,
       CASE len(cn)
          WHEN 3 THEN 'California'
          WHEN 2 THEN 'Kansas'      
          END AS StateName
    from conf_users
    Update Case
    use pangu
    update employee
    set e_wage =
    case
    when job_level = ’1’ then e_wage*1.08
    when job_level = ’2’ then e_wage*1.07
    when job_level = ’3’ then e_wage*1.06
    else e_wage*1.05
    end

    WHILE…CONTINUE…BREAK

    其语法如下:
    WHILE 
    <条件表达式>
    BEGIN
    <命令行或程序块>
    [BREAK]
    [CONTINUE]
    [命令行或程序块]
    END
    
    WHILE 命令在设定的条件成立时会重复执行命令行或程序块。CONTINUE命令可以让程序跳过CONTINUE 命令之后的语句,回到WHILE 
    循环的第一行命令。BREAK 命令则让程序完全跳出循环,结束WHILE 命令的执行。WHILE 语句也可以嵌套。

    实例:

    While 嵌套
    declare @x int, @y int, @c int
    select @x = 1, @y=1
    while @x < 3
    begin
    print @x --打印变量x 的值
    while @y < 3
    begin
    select @c = 100*@ x+ @y
    print @c --打印变量c 的值
    select @y = @y + 1
    end
    select @x = @x + 1
    select @y = 1
    end

    RETURN

    RETURN [整数值]
    RETURN 命令用于结束当前程序的执行,返回到上一个调用它的程序或其它程序。在括号内可指定一个返回值。
    
    View Code
    declare @x int @y int
    select @x = 1 @y = 2
    if x>y
    return 1
    else
    return 2
    如果没有指定返回值,SQL Server 系统会根据程序执行的结果返回一个内定值
  • 相关阅读:
    Mac OS X系统下的Android环境变量配置
    mac 终端 常用命令
    如何在mac本上安装android sdk
    让浏览器支持Webp
    ngCordova安装配置使用教程
    js中const,var,let区别
    avaScript技术面试时要小心的三个问题
    视频H5のVideo标签在微信里的坑和技巧
    Git 忽略一些文件不加入版本控制
    "The /usr/local directory is not writable."解决方法
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2547879.html
Copyright © 2011-2022 走看看