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    -- 保持原值

    三、全局变量

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

     全部变量的使用:

  • 相关阅读:
    判断一个值是不是数字
    webpack起的项目怎么用手机访问?
    vue 父子组件数据双向绑定
    js取整
    封装加减乘除函数 解决JS 浮点数计算 Bug
    javascript笔记 (持续更新)
    ajax请求的原生js实现
    程序员の健康和效率装备列表,普通人也能参考
    Java static,final 基本概念
    Download EditPlus Text Editor
  • 原文地址:https://www.cnblogs.com/xulinjun/p/12020189.html
Copyright © 2011-2022 走看看