【发布时间】:2021-07-22 05:25:21
【问题描述】:
我有一个要从多个表中选择的 sql 查询。我也在创建一个基于 Ids 变量的临时表
IF @IDs IS NOT NULL
BEGIN
CREATE TABLE #TempTable(id nvarchar(12))
INSERT #TempTable (id)
SELECT x.value
FROM string_split(@IDs, ',') x
END
在此之后,我根据多个条件进行选择。
WHERE m.l_var = @l_var
AND m.o_var = @o_var
AND tvar BETWEEN @Start AND @End
AND m.id in (SELECT id FROM #TempTable)
IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL
DROP TABLE #TempTable
如何将最后一个 AND 语句写入可以检查 @IDs 是否为空的位置,就像创建表时一样?
供参考,这是我想要的逻辑,但不知道怎么写正确:
WHERE ....
AND ...
AND..
AND IF NOT NULL @IDs m.id in (SELECT id FROM #TempTable)
OR ELSE DON'T APPEND
【问题讨论】:
-
and @IDs is null or m.id in (SELECT id FROM #TempTable)? -
您使用的是哪个 dbms? (上面的代码是特定于产品的。)
-
@jarlh Sql 服务器管理工作室
-
@TheImpaler 我会试试的。
-
@PatrickS SSMS 纯粹是一个客户端 UI,它不是数据库引擎,您使用的是 SQL Server 并且想要
select @@version的版本。
标签: sql sql-server tsql