Sql 在一个SELECT语句中设置两个标量变量?
我想这样做:Sql 在一个SELECT语句中设置两个标量变量?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想这样做: Declare @a int; Declare @b int; SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223') PRINT @a PRINT @b 但这是无效的语法。如何在一个select语句中设置多个标量变量?我可以做到: Declare @a int; Declare @b int; SET @a = (SELECT StartNum FROM Users Where UserI
Declare @a int;
Declare @b int;
SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223')
PRINT @a
PRINT @b
但这是无效的语法。如何在一个select语句中设置多个标量变量?我可以做到:
Declare @a int;
Declare @b int;
SET @a = (SELECT StartNum FROM Users Where UserId = '1223')
SET @b = (SELECT EndNum FROM Users Where UserId = '1223')
PRINT @a
PRINT @b
但这需要两倍的时间。最快的方法是什么?这样做:
DECLARE @a int;
DECLARE @b int;
SELECT @a = StartNum, @b = EndNum
FROM Users
WHERE UserId = '1223'
Declare @a int;
Declare @b int;
SELECT @a=StartNum,@b=EndNum FROM Users Where UserId = '1223'
PRINT @a
PRINT @b
SELECT StartNum, EndNum
INTO @a, @b
FROM Users
Where UserId = '1223';
如果您在存储过程中执行此操作,并且不希望在输出结果集中显示select的结果,则需要使用INTO这个词
Declare @a int;
Declare @b int;
SELECT StartNum, EndNum
FROM Users
Where UserId = '1223'
INTO @a, @b;
它也可以这样使用:
Declare @a int;
Declare @b int;
SELECT @a=StartNum,@b=EndNum FROM Users Where UserId = '1223'
PRINT @a
PRINT @b
SELECT StartNum, EndNum
INTO @a, @b
FROM Users
Where UserId = '1223';
很好,谢谢。我在计算SQL的语法时遇到了麻烦。有很多关键字和结构可以以各种意想不到的方式使用。@aF。对不起!当12分钟的接受限制达到时,我分心了,忘了回去检查。我在SQL Server DB上尝试了这里描述的两种方法,但都不起作用。这只是对任何尝试这种方式的人的一个警告。@EthanConner我发布这篇文章已经很长时间了,但它过去是有效的,将值存储在变量中,以便在存储过程的后面部分使用,而不将它们推送到输出,您是否遇到任何特定错误?“接近“into”的无效语法”或类似的内容。SQL Server不允许我使用这种格式,但“select@a=column\u a”格式运行良好