0

フィールドID、department_code、sub_department_code、class_code、desc_textのテーブルがあります

desc_textには、sub_department_codeフィールドとclass_codeフィールドがnullの場合の部門名、department_codeとsub_department_codeがnullではないがclass_codeがnullの場合のsub_department名、class_codeがnullでない場合のクラスの名前があります。

私の問題は、上のテーブルのIDを持つ別のテーブルがあることですが、department_code、desc_text(部門の)、sub_department_code、desc_text(sub_departmentの)などのフィールドを選択したいと思います。

いくつかの方法を試しましたが、この問題を検索する方法すらわかりません。

次の2つのテーブルがあります: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 car22
トラック

Hierarchy.idはhierarchy_detail.hierarchy_idにリンクされています

これにより、必要なデータを含むテーブルができました。これは、hierarchy.idからのfkであり、リンクして部門、サブセプト、およびクラスコードを取得しますが、タイプごとにテキストを取得するのに問題があります。 。

4

1 に答える 1

1

ロジックをキャプチャするためにcaseステートメントを使用したいとします。Imが正しく読んでいる場合は、次のようになります。

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 に答える