如果未提供参数,则返回整个记录集

时间:2017-01-11 16:57:28

标签: sql where-clause sybase-ase

我正在创建一个接受ID作为参数的存储过程,并将带来一条与提供的ID相关的记录,如果没有提供ID,则将整个结果集带回来。

我已经设法使用COALESCE函数进行了一些解决方法,但我真的希望将该输入参数作为INTEGER数据类型。

这是我的代码:

CREATE PROCEDURE GetThis
@ID VARCHAR(25) =   NULL
AS
BEGIN
SET @ID= COALESCE( @ID, '%' ) 
...

SELECT * FROM #TABLE
WHERE CONVERT(VARCHAR(25),ID) LIKE @ID
END

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用OR声明:

SELECT * FROM #TABLE
WHERE  @ID IS NULL
OR     CONVERT(VARCHAR(25),ID) LIKE @ID