【发布时间】:2013-12-05 15:51:41
【问题描述】:
我正在编写一个存储过程来查询数据库。
参数被传递给 where 子句的过程。
我似乎无法在任何地方找到关于 SQL IF 和 CASE 语句的优缺点的描述。谁能给我一个理由,为什么我应该使用其中一个而不是另一个,或者如果我完全走错了方向?
方法一:
DECLARE @SQL_WHERE_QUERY NVARCHAR(MAX) = '';
IF @SQL_PARAM IS NOT NULL SET @SQL_WHERE_QUERY = @SQL_WHERE_QUERY + ' AND [COLUMN_NAME] = '''+@SQL_PARAM+''''
方法二:
DECLARE @SQL_WHERE_QUERY NVARCHAR(MAX) = '';
SET @SQL_WHERE_QUERY = CASE WHEN @SQL_PARAM IS NOT NULL THEN ' AND [COLUMN_NAME] = '''+@SQL_PARAM+'''' END
谢谢
【问题讨论】:
标签: sql select stored-procedures if-statement case