我有一个存储过程,它接收 id 作为输入。如果接收到的 id 为 0,那么我们需要删除所有行,否则我们只需要删除那些与输入 id 匹配的行。
我可以通过使用 if-else 拆分查询来完成此操作,但这就是这里的问题,我们希望通过使用JOINS
and CASE
(可能是)在单个查询中完成此操作。
这是我的桌子。
CREATE TABLE InfineonFiles (
infimax INTEGER NOT NULL,
neonId INTEGER NOT NULL,
eTime INTEGER NOT NULL,
pTime INTEGER NOT NULL,
cisId INTEGER NOT NULL )
输入属性是说,
DECLARE @inpId INT = [ 0 OR POSITIVE INTEGER]
删除是这样的
IF @inpId = 0
DELETE TOP (5000) AIA FROM InfineonFiles WHERE pTime < @timeUnitInSeconds
ELSE
DELETE TOP (5000) AIA FROM InfineonFiles WHERE pTime < @timeUnitInSeconds AND cisId = inpId
以上需要在单个查询中。我怎样才能做到这一点?