0

我想一次从一个选择子句中获取一个参数,而不是两次选择。

目前,我正在这样做:

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 
    ...

但我无法得到它...

是否甚至可以在变量中仅获取一列?(我的选择只返回一行)

谢谢,托尼流

4

1 回答 1

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 
于 2012-08-26T11:12:41.440 回答