LocationID LocationName
50 Sharjah
51 Qatar
55 Rigga
6 Dubai Mall
我需要SQL查詢,需要locationId
作爲參數, 如果locationId
傳遞0,那麼我想告訴所有這些記錄,否則顯示爲每locationId
通過。 我試過病例陳述但沒有成功。情況值
LocationID LocationName
50 Sharjah
51 Qatar
55 Rigga
6 Dubai Mall
我需要SQL查詢,需要locationId
作爲參數, 如果locationId
傳遞0,那麼我想告訴所有這些記錄,否則顯示爲每locationId
通過。 我試過病例陳述但沒有成功。情況值
試試這個:這裏@Parm
將價值傳遞給你的腳本
SELECT *
FROM TableName
WHERE (@Parm = 0 OR LocationID = @Parm)
DECLARE @locationId INT;
SELECT LocationID, LocationName
FROM yourTable
WHERE @locationId = 0 OR LocationID = @locationId
我創建了一個存儲過程你。
CREATE TABLE #LOCATIONS
(
LocationID INT
,LocationName VARCHAR(100)
)
INSERT INTO #LOCATIONS VALUES(
50,'Sharjah')
,(51,'Qatar')
,(55,'Rigga')
,(6,'Dubai Mall')
SELECT * FROM #LOCATIONS
GO
CREATE PROC LOC (@LOC_ID INT)
AS
BEGIN
IF(@LOC_ID = 0)
SELECT * FROM #LOCATIONS
ELSE
SELECT * FROM #LOCATIONS WHERE LocationID = @LOC_ID
END
GO
EXEC LOC 0 -- Try Executing the stored proc like this
EXEC LOC 55 -- Try Executing the stored proc like this