实战探讨主要来源于触发器的Demo
@DECLARE 语句用于声明变量
声明的变量可以用于存储临时数据,并在 SQL 查询中多次引用
基本的语法如下:
DECLARE @variable_name datatype;
-- 声明一个整数变量,还可直接这样定义 DECLARE @MyNumber INT=10; DECLARE @MyNumber INT; -- 为变量赋值 SET @MyNumber = 10; -- 使用变量 SELECT @MyNumber AS 'My Number';
截图如下:

-- 声明变量 DECLARE @FirstName VARCHAR(50); DECLARE @LastName VARCHAR(50); DECLARE @FullName VARCHAR(100); -- 赋值 SET @FirstName = 'John'; SET @LastName = 'Doe'; -- 连接字符串 SET @FullName = @FirstName + ' ' + @LastName; -- 使用变量 SELECT @FullName AS 'Full Name';
截图如下:

-- 声明变量
DECLARE @Threshold INT;
DECLARE @Result VARCHAR(50);
-- 赋值
SET @Threshold = 50;
-- 条件判断
IF @Threshold > 100
SET @Result = 'Above 100';
ELSE
SET @Result = '100 or Below';
-- 使用变量
SELECT @Result AS 'Result';截图如下:

-- 声明变量
DECLARE @Counter INT;
DECLARE @MaxCount INT;
-- 赋值
SET @Counter = 1;
SET @MaxCount = 5;
-- 循环
WHILE @Counter <= @MaxCount
BEGIN
PRINT 'Counter is ' + CAST(@Counter AS VARCHAR(10));
SET @Counter = @Counter + 1;
END截图如下:

对于Mysql的临时变量基本知识如下
基本语法如下:
SET @variable_name = value;
与上面同理,Demo如下:
-- 声明并赋值变量 SET @MyNumber = 10; -- 使用变量 SELECT @MyNumber AS 'My Number';
截图如下:

-- 声明并赋值变量 SET @FirstName = 'John'; SET @LastName = 'Doe'; -- 连接字符串 SET @FullName = CONCAT(@FirstName, ' ', @LastName); -- 使用变量 SELECT @FullName AS 'Full Name';
截图如下:

– 声明并赋值变量 SET @Threshold = 50; – 条件判断 IF @Threshold > 100 THEN SET @Result = ‘Above 100'; ELSE SET @Result = ‘100 or Below'; END IF; – 使用变量 SELECT @Result AS ‘Result';
截图如下:

DELIMITER $$
CREATE PROCEDURE LoopExample()
BEGIN
DECLARE Counter INT DEFAULT 1;
DECLARE MaxCount INT DEFAULT 5;
-- 使用准备好的语句进行循环
PREPARE stmt FROM 'SELECT ? AS Counter';
WHILE Counter <= MaxCount DO
EXECUTE stmt USING @Counter;
SET Counter = Counter + 1;
END WHILE;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;
-- 调用存储过程
CALL LoopExample();截图如下:

以下为错误的Demo
对于循环遍历,Mysql中不适合使用if,需要使用case
-- 声明并赋值变量
SET @Threshold = 50;
-- 条件判断
IF @Threshold > 100 THEN
SET @Result = 'Above 100';
ELSE
SET @Result = '100 or Below';
END IF;
-- 使用变量
SELECT @Result AS 'Result';以及不可直接使用如下方式
-- 声明并赋值变量
SET @Counter = 1;
SET @MaxCount = 5;
-- 使用准备好的语句进行循环
PREPARE stmt FROM 'SELECT ? AS Counter';
WHILE @Counter <= @MaxCount DO
EXECUTE stmt USING @Counter;
SET @Counter = @Counter + 1;
END WHILE;
DEALLOCATE PREPARE stmt;到此这篇关于Sql Server中的declare基本知识的文章就介绍到这了,更多相关Sql Server declare内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!