0

我有一个包含字段 ID、department_code、sub_department_code、class_code、desc_text 的表

desc_text在sub_department_code和class_code字段为空时为部门名称,在department_code和sub_department_code不为空但class_code为空时为sub_department名称,在class_code不为空时为类名。

我的问题是我有另一个表具有上表中的 id,但我想选择具有部门代码、desc_text(部门)、sub_department_code、desc_text(子部门)等的字段。

我尝试了一些方法,但我什至不确定如何搜索这个问题。

我有以下两个表: Hierarchy
id,department_code,subdept_code,class_code
1 1 null null
2 1 1 null
3 1 1 1
4 2 1 null
Hierarchy_detail
id,hierarchy_id,short_text
1 1 car
2 2 truck

hierarchy.id 链接到 hierarchy_detail.hierarchy_id

有了这个,我有一个包含我想要的数据的表,它是来自 hierarchy.id 的 fk,我 cna 链接并获取部门、子 sept 和类代码,但是我无法获取每种类型的文本.

4

1 回答 1

1

您想使用 case 语句来捕获逻辑。如果我阅读正确,它看起来像这样:

select id, department_code, sub_department_code, class_code,
       (case when sub_department_code is null and class_code is null
             then desc_text
        end) as department_name,
       (case when department_code is not null and sub_department_code is not null and class_code is null
             then desc_text
        end) as sub_department_name,
       (case when class_code is not null then desc_text
        end) as class_name
from t

然后,您可以将此查询用作子查询来连接到其他表。

于 2012-09-12T20:41:33.877 回答