我的 sql 声明有两部分附有 'union all'。我希望第二部分仅在某些条件为真时执行
My sql statement has two parts attached with 'union all'. I want the second part to exceecute only when some condition is true
我的查询太大,无法粘贴到此处,并且至少涉及 15 个表,因此我粘贴了一个小示例来解释我的问题
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country
FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
我希望仅当某些条件为真(来自参数中的 UI )时才执行查询的所有部分的联合,例如boolean combo=true
.
谢谢
这个怎么样:
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country
FROM Suppliers
WHERE Country='Germany'
AND @Combo = true
ORDER BY City;
它仍然运行联合的第二部分,但是如果@Combo 为真,它只会 return 记录。节省大量 IF THEN ELSE 语句。如果您在联合中有很多查询也有帮助,因为每个查询都可以有自己的@Combo 变量。
我的查询太大,无法粘贴到此处,并且至少涉及 15 个表,因此我粘贴了一个小示例来解释我的问题
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country
FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
我希望仅当某些条件为真(来自参数中的 UI )时才执行查询的所有部分的联合,例如boolean combo=true
.
谢谢
这个怎么样:
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country
FROM Suppliers
WHERE Country='Germany'
AND @Combo = true
ORDER BY City;
它仍然运行联合的第二部分,但是如果@Combo 为真,它只会 return 记录。节省大量 IF THEN ELSE 语句。如果您在联合中有很多查询也有帮助,因为每个查询都可以有自己的@Combo 变量。