如何在 SQL 中编写查询,当字符串变量不是 '' 时,我们包含 WHERE 子句并检查 ID 是否存在于列表中?
以下似乎不起作用。
DECLARE @var varchar(20)
DECLARE @clause varchar(20)
DECLARE @sql varchar(20)
SET @var= '1,2,3'
IF @var <> ''
SET @clause=' WHERE ID IN ('+ @var + ')'
SET @sql='SELECT [ID]
,[SOURCE]
,[LAST_KEY]
FROM [oms].[dbo].[MIGRATION]'
EXEC (@sql + @clause)
错误消息:消息 156,级别 15,状态 1,行 2 关键字“WHERE”附近的语法不正确。