Mar*_*rio 1 sql sql-server-2008
我使用以下存储过程
CREATE PROCEDURE [dbo].[GetStates]
(
@p_StateId int = NULL
)
AS
SELECT
StateId AS CodeID,
StateName AS CodeName
FROM
States
WHERE
StateID = COALESCE(@p_StateID, StateID)
Run Code Online (Sandbox Code Playgroud)
如果@p_StateId为null,则返回所有行,否则返回单行(如果StateId匹配).
我的问题是,用SQL Server 2008做一个更优雅的方法来实现这个目的吗?
明确的比较也NULL应该起作用:
SELECT StateId AS CodeID,
StateName AS CodeName
FROM States
WHERE @p_StateID IS NULL OR StateID = @p_StateID
Run Code Online (Sandbox Code Playgroud)