我想一次从select子句中获取一个参数,而不是两次选择。
目前,我正在这样做:
SELECT
Idx_Pro,
Name,
Mail,
IsValidateUser
FROM
MyTable
WHERE
[Mail] = @Mail
AND
[Password] = @password
If (@@ROWCOUNT > 0)
SET @Id_output = (SELECT Id_User
FROM MyTable
WHERE [Mail] = @Mail
AND [Password] = @password
)
我试过了:
DECLARE @Id_output int
SELECT
[@Id_output] = Idx_Pro,
...
FROM MyTable
...
但我无法得到它......
甚至可以在变量中只获得一列吗? (我的选择只返回一行)
感谢, TonyFlow
答案 0 :(得分:0)
您是否希望同时返回4列结果并在一次操作中分配给变量?如果这样那是不可能的。您可以将所有列值分配给变量或参数,然后选择那些以返回结果集。
DECLARE @Idx_Pro INT,
@Name VARCHAR(50),
@IsValidateUser BIT
SELECT @Idx_Pro = Idx_Pro,
@Name = Name,
@IsValidateUser = IsValidateUser
FROM MyTable
WHERE [Mail] = @Mail
AND [Password] = @password
/*No intermediate statement can be placed here as it will reset @@ROWCOUNT*/
SELECT @Idx_Pro AS Idx_Pro,
@Name AS Name,
@Mail AS Mail,
@IsValidateUser AS IsValidateUser
WHERE @@ROWCOUNT > 0