1
SQL Server에서 신참입니다.null 값을 갖는 매개 변수를 사용하여 저장 프로 시저 만들기
|Barcode|Goods | Stock | Person |
-----------------------------------------
|0020307|Book |Available | Mike |
|0090010|Table |NULL | Jane |
|0140397|Chalk |NULL | Mike |
|0190017|Glass |NULL |Christoper|
|0080017|Hammer|Available | Ron |
제가 [Stock]
그것이 열에 NULL 값을 갖는 파라미터로 저장 프로 시저를 만들려고 :
는 I는 표 4와 같은 열이 dbo.Example
있다. 매개 변수와 함께이 같은
CREATE PROCEDURE examproc
@person NVARCHAR(50) = NULL,
@stock nvarchar(50) = NULL
AS
SELECT *
FROM dbo.Example
WHERE person = ISNULL(@person, person)
AND Stock = ISNULL(@stock, Stock) OR Stock IS NULL
그리고 프로 시저를 실행 :
EXEC examproc @person = 'Mike'
하지만 결과는 내가 기대했던되지 않습니다 :
|Barcode|Goods | Stock | Person |
-----------------------------------------
|0020307|Book |Available | Mike |
|0090010|Table |NULL | Jane |
|0140397|Chalk |NULL | Mike |
|0190017|Glass |NULL |Christoper|
내 SQL 문에 문제가있는 것을 알고, 나는 아직도 혼란 스럽다.
CREATE PROCEDURE examproc
@person NVARCHAR(50) = NULL,
@stock nvarchar(50) = NULL
AS
SELECT *
FROM dbo.Example
WHERE person = ISNULL(@person, person)
AND (Stock = ISNULL(@stock, Stock) OR Stock IS NULL)
하고 - 내가 제안을 필요
..
감사합니다 ... 당신은 WHERE
절에 AND
및 OR
을 혼합 할 때 매우주의해야
감사합니다. 그것은 작동 ... –