-2
ADRLN1                                   ADRLN2                                   ADRLN3                                   ADRLN4                                   ADRCIT                    ADRSTA                    ADRCNY                    ADDRESS
---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ------------------------- ------------------------- ------------------------- ----------
Tsrdl                                    address1                                 address2                                  dfdfdfdfdfdfdfdfdfdfdfdfdf              Alibaug                   Maharashtra               India                     412001
aaa aa Ltd.                              Mahalaxmi                                                                                                                  Mumbai                    Maharashtra                                         400011
190, SANDESH VIHAR (P&T)                 DELHI                                                                                                                                                                                                    110034
6/2/A LLOYDS GARDEN                      APPASAHEB MARATHE MARG                   PRABHADEVI                               MUMBAI                                                                                                                 400025

上記のデータは、selectクエリを使用してデータベースから反映されます

出力:

ADRLN1                                   ADRLN2                                   ADRLN3                                   ADRLN4                                   ADRCIT                    ADRSTA                    ADRCNY                    ADDRESS
---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ------------------------- ------------------------- ------------------------- ----------
Tsrdl                                    address1                                 address2                                  dfdfdfdfdfdfdfdfdfdfdfdfdf              Alibaug                   Maharashtra               India                     412001
aaa aa Ltd.                              Mahalaxmi                                Mumbai                                    Maharashtra                             400011
190, SANDESH VIHAR (P&T)                 DELHI                                    110034
6/2/A LLOYDS GARDEN                      APPASAHEB MARATHE MARG                   PRABHADEVI                               MUMBAI                                   400025

次のように出力が必要です。いずれかの列が空白の場合、次の列の値に置き換える必要があるとします。

4

1 に答える 1

1

合体を使用する必要があります。例えば、

select coalesce (ADRLN1, ADRLN2, ADRLN3, ADRLN4 ) as ADRLN1 
  coalesce (ADRLN2, ADRLN3, ADRLN4 ) as ADRLN2,
  coalesce (ADRLN3, ADRLN4 ) as ADRLN3,
  ADRLN2 as ADRLN2
from table;

ただし、実際に列をシフトするには、ロジックを進める必要があります。

編集:アドレスの「ギャップ」を排除したいようです。

実行できるトリックは、列の連結を選択することです。

select decode(ADRLN3, null, null, ADRLN3||',')||
   decode(ADRLN4, null, null, ADRLN4||',')||
   decode(ADRCIT, null, null, ADRCIT||',')||
   decode(ADRSTA, null, null, ADRSTA||',')||
   decode(ADRCNY, null, null, ADRCNY||',')||
   ADDRESS  as ADDRESS
from table;
于 2013-02-28T12:53:37.827 に答える