在WHERE子句中,是否可以像IF一样使用没有ELSE的CASE语句来设置条件或不设置条件呢?
例如:
WHERE monto = 100
AND CASE WHEN @canal is not null
THEN canal = @canal
END
我提出这个问题是因为我想做这件事。
WHERE monto = 100
IF (@canal is not null){
AND canal = @canal
}
在WHERE子句中,是否可以像IF一样使用没有ELSE的CASE语句来设置条件或不设置条件呢?
例如:
WHERE monto = 100
AND CASE WHEN @canal is not null
THEN canal = @canal
END
我提出这个问题是因为我想做这件事。
WHERE monto = 100
IF (@canal is not null){
AND canal = @canal
}
你需要在 WHERE
语句中加入这个条件:
WHERE monto = 100 AND ( @canal IS NULL OR canal = @canal )
如果它实际上是在存储过程中,使用 IF...ELSE
来囊括不同的查询可能更加高效,其中一个带有此参数,另一个没有。
IF...ELSE
。但是表有多大?如果您没有性能问题,您不需要更改它。 - Tim Schmelter