【发布时间】:2019-11-18 00:31:25
【问题描述】:
我的 SQL 知识有些有限。我有 2 个 Select 语句返回单独的结果集。由于要查询的表是每个 Select 语句的不同表集,我想知道是否可以编写它,以便它根据从完全不同的表上的 Select 语句返回的结果来选择要执行的查询,例如示例:
Select C.ManBtchNum from Table C
If OITM.ManBtchNum = 'Y' then
Select * from Table A
else
Select * from Table B
很抱歉使用伪代码,但这是我能解释这一点的最短方式。
我不确定这里是否可以使用 Case 表达式。任何意见将是有益的。谢谢
我已尝试过 Case 和 Union,但没有得到所需的结果。当然,考虑到我的知识有限,我可能做错了什么
【问题讨论】:
-
第一次看到“select table”,是错字还是不知道的rdms?
-
这可能是通过对两个表和 COALESCE 或 CASE 使用 INNER JOIN 来实现的。请提供这三个表中的一些示例数据以及该示例数据的预期结果,我们可以提供进一步的帮助。
-
创建过程,声明变量,从第一个查询中填充变量(单值!),使用
if @variable = xxx ... else ...(使用正确的语法)。最好避免使用select *- 而是使用指定的字段列表。 -
有没有办法加入可能的结果集并保持值相似?或者结果集 1 是否有可能返回数字,而另一个结果返回不同的数据类型(字符、日期等),这样查询可能会根据结果出错?
-
@a_horse_with_no_name - 我正在使用 sql-server。
标签: sql sql-server tsql