0

2つの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 
    ...

しかし、私はそれを得ることができません...

変数に1つの列だけを取得することも可能ですか?(私の選択は1行のみを返します)

ありがとう、TonyFlow

4

1 に答える 1

0

1 回の操作で 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 に答える