2012-08-26 55 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