【发布时间】:2019-04-27 07:18:30
【问题描述】:
我想从许多表中选择一个。此选择取决于某些条件。我怎样才能做到? 我想它应该是这样的(但它不起作用):
CASE x
WHEN x=1 THEN
select Id,Name from table1
WHEN x=2 THEN
select Id,Name from table2
WHEN x=3 THEN
select Id,Name from table3
END CASE;
【问题讨论】:
-
x来自哪里? -
应该作为delphi的TFDQuery的参数(或者也可以作为数据库中的参数内存储过程)
-
为什么不能在 Delphi 中使用
IF?为什么你有三个不同的表来存储相同的信息?从您给出的示例中,带有附加列x的单个表会更好 -
这是一种不好的做法 - 在运行时动态创建 SQL。不同的表有不同的信息。只有 2 个字段是常见的 - Id 和 Name
-
不确定我是否同意 IF 语句在 SELECT 语句的代码中不好,逻辑必须放在某个地方,SQL 或代码,在大多数情况下最好放在可以看到的地方
标签: sql postgresql case