Получить фактическое значение переменной в другой переменной - PullRequest
0 голосов
/ 23 апреля 2020

Например, в приведенном ниже коде я хочу установить @XYZ со значением @ABC и значением @DEF, т.е. @XYZ должно быть PQRSTU.

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

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Если вы имели в виду конкатенацию, вы можете использовать

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 голос
/ 23 апреля 2020

Просто используйте select или set ключевое слово:

-- both are equivalent
SELECT @XYZ = @ABC + @DEF;
SET @XYZ = @ABC + @DEF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...