0

これは私のクエリです:

SELECT
  `date`,
  MAX(IF(`index_name` = 'Alerian MLP PR USD' AND `time_period`='M1', results, NULL)) AS `Alerian MLP PR USD`,
  MAX(IF(`index_name` = 'MSCI EAFE Mid NR USD' AND `time_period`='M1', results, NULL)) AS `MSCI EAFE Mid NR USD`
FROM
  `mst_ind`
GROUP BY `date`

問題は、次のような複数の NULL 値を返すことです。

ここに画像の説明を入力

そのクエリを次のような別のクエリ内にラップできます

SELECT * FROM (
SELECT
  `date`,
  MAX(IF(`index_name` = 'Alerian MLP PR USD' AND `time_period`='M1', results, NULL)) AS `Alerian MLP PR USD`,
  MAX(IF(`index_name` = 'MSCI EAFE Mid NR USD' AND `time_period`='M1', results, NULL)) AS `MSCI EAFE Mid NR USD`
FROM
  `mst_ind`
GROUP BY `date`
) sel
WHERE sel.`MSCI EAFE Mid NR USD` IS NOT NULL AND sel.'Alerian MLP PR USD' IS NOT NULL

しかし、「NOT NULL」句にすべてのフィールドをリストする必要があるため、これは良い解決策ではありません。

ここで NULL 値を削除するより簡単な方法はありますか?

ありがとう!

4

0 に答える 0