【发布时间】:2015-02-28 17:25:49
【问题描述】:
Create table test
(
id int,
Name varchar(50),
ObjType varchar(50)
Typeval varchar(50)
)
我还有另外 2 个名为 tbl1 和 tbl2 的表
根据表“test”中 ObjType 的值,我必须从 tbl1 或 tbl2 中检索列。 注意:我要检索的列名在 tbl1 和 tbl2 中不同。
类似这样的:
SELECT Name, Objtype,id, typeval,
Desc = CASE WHEN objtype='abc' THEN
SELECT col1 from tbl1 WHERE cond=id (col from table test)
WHEN objtype = 'xyz' THEN
SELECT cola from tbl2 WHERE crit = id (col from table test)
任何人都可以指导我
【问题讨论】:
-
test、tb1 和 tbl2 之间有什么关系吗?如果是这样,则使用基于 objtype 的 CASE 加入并从 tbl1 或 tbl2 中提取
-
tbl1 和 tbl2 不相关。基本上测试有主数据ID的列,我需要从主表中获取描述。我们有不止一个主表来存储数据
-
@Saravanan 如果表不相关,那么获取逻辑是什么?如果没有关系,它将无法工作,除非 tbl1 和 tbl2 各只有 1 行并且您总是获取那一行...但这是另一个问题。
-
我已经在我的查询中提到了这个关系。 id 列是链接
标签: sql sql-server