我有一个包含字段ID,department_code,sub_department_code,class_code,desc_text
的表当sub_department_code和class_code字段为null时,desc_text具有部门的名称,当department_code和sub_department_code不为null但class_code为null时为sub_department名称,而当class_code为非null时为class的名称。 / p>
我的问题是我有另一个表,其中包含上表中的id,但我想选择department_code,desc_text(部门),sub_department_code,desc_text(sub_department)等字段/ p>
我尝试了一些方法,但我不确定如何搜索这个问题。
我有以下两个表:
层次
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辆车
2 2卡车
hierarchy.id链接到hierarchy_detail.hierarchy_id
有了这个,我有一个包含我想要的数据的表,来自hierarchy.id的fk,我可以链接并获取部门,子部分和类代码,但我在那里获取文本时遇到问题对于每种类型。
答案 0 :(得分: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
然后,您可以将此查询用作子查询以加入其他表。