0

パラメータで where 句を使用したいと考えています。私はすでに次のコードを試しましたが、うまくいきません。最後の行に赤い下線が引かれていますが、どうにかしてパラメーターを選択コマンドにバインドする必要があると思います。誰かが私を助けてくれたら素晴らしいでしょう。

Begin
declare @name varchar(MAX)
declare @x int
Set @x = 1
If @x = 1
BEGIN
SET @name = 'WHERE Username = Frank'
END
ELSE
BEGIN
SET @name = ''
END
END

今ではそれを使用します:

SELECT * FROM dbo.person @name
4

2 に答える 2

5

クエリでオプションのパラメーターを使用する一般的な方法を次に示します。

declare @UserName varchar(255) = 'Frank'

select *
from person p
where (@UserName is null or UserName = @UserName)

変数を に設定するとNULL、すべてのユーザーが選択されます。値を設定すると、そのユーザーのみが選択されます。

于 2013-06-14T16:45:17.847 に答える
0

オプションのストアド プロシージャ パラメーターを使用して、パラメーター値で行をプルするか、すべての行をプルする必要があるようです。

CREATE PROCEDURE foo
    @name AS VARCHAR(MAX) = NULL
AS
BEGIN

SELECT * FROM dbo.person WHERE Username = @name OR @name IS NULL

END
GO
于 2013-06-14T16:50:46.053 に答える