2017-02-17 23 views
1
LocationID LocationName 
50   Sharjah 
51   Qatar 
55   Rigga 
6   Dubai Mall 

我需要SQL查詢,需要locationId作爲參數, 如果locationId傳遞0,那麼我想告訴所有這些記錄,否則顯示爲每locationId通過。 我試過病例陳述但沒有成功。情況值

回答

0

試試這個:這裏@Parm將價值傳遞給你的腳本

SELECT * 
FROM TableName 
WHERE (@Parm = 0 OR LocationID = @Parm) 
0
DECLARE @locationId INT; 

SELECT LocationID, LocationName 
FROM yourTable 
WHERE @locationId = 0 OR LocationID = @locationId 
0

我創建了一個存儲過程你。

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