0

Painter で並べ替えるか、Painter ではなく並べ替えたいだけです。

オラクル10g

サンプルデータ:

ジョブタイプ

  • 料理
  • 画家
  • プログラマー
  • 郵便配達員
  • 受付
  • 主婦
  • お父さん
  • 母親

1 人のジョブ タイプごとに 1 つのラインを持つことができますが、複数のジョブを持つことができます。

SELECT   ...(LIST OF FIELDS)...,
         WM_CONCAT(job_type) AS myJob_Type
FROM     (MYTABLE)
GROUP BY ...(LIST OF FIELDS)...

これにより、myJob_Type 内のすべての job_type がカンマ区切りのリストで表示されます。これは機能します。

ここで、ジョブに「Painter」が含まれている場合に myJob_Type でソートできる方法が必要です。他の職種は気にしません。したがって、私の考えは、Painter が myJob_Type にある場合にケースを作成することでしたが、それを機能させると、複数の行が再び表示されます。

SELECT ...(LIST OF FIELDS)...,
WM_CONCAT(job_type) AS myJob_Type,
CASE WHEN(job_ype like '%Painter%') THEN '1'
ELSE '0'
END

FROM     (MYTABLE)
GROUP BY ...(LIST OF FIELDS)...,
         job_ype

別のオプションを試しました。

SELECT ...(LIST OF FIELDS)...,
WM_CONCAT(job_type) AS myJob_Type,

CASE WHEN(myJobType like '%Painter%') THEN '1'
ELSE '0'
END

FROM      (MYTABLE)
GROUP BY  ...(LIST OF FIELDS)...,
          myJobType 

助言がありますか。

4

1 に答える 1

1

あなたは試すことができます:

select   ...
         wm_concat(job_type) as myJob_Type,
         sum(decode(job_type,'Painter',1,0))
from     ...
group by ...
于 2012-07-12T13:31:24.167 に答える