2012-08-26 39 views
0

我想在一次中从select子句中获取参数,而不是两次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

回答

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 
+0

是的,这是不可能的。我只想要一个领域而不是全部四个领域并搜索谷歌,我知道我不能。谢谢你的回答! – TonyOverFlow

相关问题