从一个select子句而不是两个中获取参数

时间:2012-08-26 10:10:57

标签: sql select

我想一次从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

1 个答案:

答案 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