SQL 中的 If-Then-Else 逻辑
SQL 提供使用 CASE 语句执行条件逻辑的能力。虽然它可能不提供 if-then-else 结构的直接语法,但它使您能够定义一系列条件和相应的操作。
问题:
假设您想要根据特定优先级从表中选择数据:
使用 CASE 的解决方案:
SELECT product, price FROM table1 WHERE CASE WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1 WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2 WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3 ELSE NULL END IS NOT NULL;
此查询按顺序评估每个条件。如果project有记录,则返回匹配的行;否则,它会检查客户,然后检查公司。仅选择满足任何条件的行。
示例:
下表包含一些示例数据:
product | price | project | customer | company |
---|---|---|---|---|
A | 10 | 1 | NULL | NULL |
B | 20 | NULL | 2 | NULL |
C | 30 | NULL | NULL | 3 |
正在执行查询将返回以下结果:
product | price |
---|---|
A | 10 |
因为有一行包含project = 1、忽略其他条件,选择产品“A”的行。
以上是如何使用SQL的CASE语句实现If-Then-Else逻辑?的详细内容。更多信息请关注PHP中文网其他相关文章!