在另一个变量中获取一个变量的实际值。

问题描述 投票:0回答:1

例如,在下面的代码中,我想设置的是 @XYZ 价值为 @ABC 价值 @DEF@XYZ 应是 PQRSTU.

DECLARE @ABC VARCHAR(MAX)='PQR',
@DEF VARCHAR(MAX)='STU',
@XYZ VARCHAR(MAX);
sql sql-server variables
1个回答
1
投票

如果你的意思是连接,你可以使用

DECLARE @ABC VARCHAR(MAX)='PQR',
@DEF VARCHAR(MAX)='STU',
@XYZ VARCHAR(MAX);

SET @XYZ = CONCAT(@ABC,@DEF) 
--or 
SET @XYZ = @ABC + @DEF
+--------+
| PQRSTU |
+--------+

的优势 CONCAT 是,如果变量的值也是空的,它将返回空的字符串。VARCHAR(1) 为的。所以,你的连接将是成功的。

SET @DEF = NULL

SET @XYZ = CONCAT(@ABC,@DEF)
SELECT @XYZ
+--------+
| PQR    |
+--------+

如果你想为一个变量设值,你可以用两种方法。

SET  @xyz = value -- ANSI standard. works across RDBMS systems
SELECT @XYZ = value

1
投票

只要用 selectset 关键字

-- both are equivalent
SELECT @XYZ = @ABC + @DEF;
SET @XYZ = @ABC + @DEF;
© www.soinside.com 2019 - 2024. All rights reserved.