我有一個關於sql語句的問題。是否有可能通過這種方式進行查詢?我需要過濾一個where子句,它取決於@user_id的值。存儲過程更改where子句語句
ALTER PROCEDURE [dbo].[getUserAddress]
@user_id int = null
AS
SELECT user_id, state_code, address from UserAddress
IF(@user_id > 10)
BEGIN
WHERE state_code = 'CA'
END
ELSE
WHERE address = 'HILLS'
END
我試圖這樣做,但它似乎不是一個標準的方式。
IF(@user_id > 10)
BEGIN
SELECT user_id, state_code, address from UserAddress WHERE state_code = 'CA'
END
ELSE
SELECT user_id, state_code, address from UserAddress WHERE address = 'HILLS'
END
請指教一下是這個概念的最佳方法。請幫忙。 謝謝
您使用的是MySQL還是MS SQL Server? (不要標記不涉及的產品。) – jarlh
SELECT IF如果WHERE是您應該遵循的順序,並且如果您使用的是MySQL,那麼@jarlh表示您需要指定! –
只有兩個條件?你認爲你需要在未來增加更多條件嗎? – Steve