zoukankan      html  css  js  c++  java
  • SQLServer —— 变量的使用

    一、局部变量的定义与赋值

    定义语法:

    -- 声明一个局部变量
    DECLARE @变量名 数据类型
    
    -- 声明多个局部变量
    DECLARE @变量名1 数据类型1, @变量名2 数据类型2

    赋值语法:

    SET @变量名 = 值 或 SELECT @变量名 =

    使用 Select 赋值确保筛选出的记录只有1条。

    实际的使用例子:

    比如我现在有一张学生表,内容如下。

    我现在有个需求,查出马小李的前面一位同学和马小李后面的一位同学,这个需求就需要使用局部变量:

    -- 定义2个变量,一个保存学号,一个保存姓名
    declare @stuId int, @stuName varchar(20)
    -- 给姓名变量赋值
    set @stuName = '马小李'
    -- 查出马小李的学号并保存在学号变量中
    select @stuId = StudentId from Students where StudentName = @stuName
    -- 查出马小李前后的学生信息
    select * from Students where StudentId = (@stuId - 1) or StudentId = (@stuId + 1)

    查询结果如下:

    二、SET 和 SELECT 比较

    使用场景 set select
    同时对多个变量赋值 不支持 支持
    表达式返回多个值时 出错 将返回的最后一个值赋给变量
    表达式未返回值时 变量被赋NULL值 变量保持原值

     比如,根据上面的学员表,如下的使用方式有差异:

    declare @stuAddress varchar(500), @stuName varchar(20)
    -- set @stuAddress = '天津市南开区红磡公寓5-5-102', @stuName = '马小李'           -- 不允许这样赋值
    select @stuAddress = '天津市南开区红磡公寓5-5-102', @stuName = '马小李'           -- 允许
    -- set @stuAddress = (select StudentAddress from Students)       -- 不允许
    select @stuAddress = StudentAddress from Students                -- 允许 
    set @stuAddress = (select StudentAddress from Students where 1 < 0)  -- NULL值
    select @stuAddress = StudentAddress from Students where 1 < 0    -- 保持原值

    三、全局变量

    全局变量都使用俩个@标志作为前缀。

     全部变量的使用:

  • 相关阅读:
    Linux imooc learning
    有用的生活有关的website
    ps -ef | grep java
    2.3. Configuring sudo Access-RedHat
    How to change java version in Linux
    文档记录工具
    Jmeter 学习imooc
    Linux 用户管理
    Builder模式(设计模式)
    Prototype模式(设计模式)
  • 原文地址:https://www.cnblogs.com/xulinjun/p/12020189.html
Copyright © 2011-2022 走看看