2017-08-18 10 views
0

oracle sqlでは、以下のような出力が必要です。 カラムを行で区切ってxを入れ、それ以外の場合は空白にします。select文などを使用してSQLテーブル出力を取得する方法

例:: - 1/100したがって、空白を入れない場合はxを入れます。 SQLではselect文のクエリを使用できますか? 3 100ない部門はそれほどその空白を置く場合...

XYZ 1 2 3 4 5 ... 
--- -- -- -- -- -- 
100 × ×  × × 
200 × ×  × × 
300 × × × × × 
400 × ×  × × 

ITSは、データベーステーブル内のすべての点で最大n個の列を行います。 データベーステーブルのすべての列を実行します。

データベーステーブルのすべての列を実行します。

答えて

1

あなたはそうのように、MOD()を使用してこれを行うことができます。

WITH sample_data AS (SELECT 100 xyz FROM dual UNION ALL 
        SELECT 200 xyz FROM dual UNION ALL 
        SELECT 300 xyz FROM dual UNION ALL 
        SELECT 400 xyz FROM dual) 
SELECT xyz, 
     'x' "1", -- every number is divisible by 1 
     CASE WHEN MOD(xyz, 2) = 0 THEN 'x' END "2", 
     CASE WHEN MOD(xyz, 3) = 0 THEN 'x' END "2", 
     CASE WHEN MOD(xyz, 4) = 0 THEN 'x' END "2", 
     CASE WHEN MOD(xyz, 5) = 0 THEN 'x' END "2" 
FROM sample_data; 

     XYZ 1 2 2 2 2 
---------- - - - - - 
     100 x x x x 
     200 x x x x 
     300 x x x x x 
     400 x x x x 
関連する問題