0

コンテンツを含むテーブル名 'Items' があります

   id    title          cat          subcat      subcat2
   1     Notebook 219   Computers    Notebooks   Ultrabooks
   2     Notebook 200   Computers    Notebooks   Notebooks
   3     Notebook 300   Computers    Chromebook  Notebooks
   4     Notebook 233   Computers    Notebooks

このクエリを使用しています

select cat,subcat,subcat2 
  from items where cat='Computers' 
 group by subcat,subcat2 
 order by subcat asc

このクエリは Notebooks、Chromebooks、Ultrabooks、Notebooks を返します。

subcat と subcat2 は一度だけ印刷する必要があります。また、空のスペースを削除する必要があります

行の重複を避けることは可能ですか?

4

3 に答える 3

0

参照された SQLFiddle

SELECT distinct t1.cat, t1.subcat, t1.subcat2
  FROM items as t1
  WHERE t1.cat='computers' GROUP BY t1.subcat

として出力

|       CAT |     SUBCAT |    SUBCAT2 |
|-----------|------------|------------|
| Computers | Chromebook |  Notebooks |
| Computers |  Notebooks | Ultrabooks |
于 2013-11-08T06:43:41.890 に答える
0

このようなものをお探しですか?

SELECT subcat
  FROM items 
 WHERE cat = 'computers' 
   AND COALESCE(subcat, '') <> ''
UNION
SELECT subcat2
  FROM items 
 WHERE cat = 'computers' 
   AND COALESCE(subcat2, '') <> ''
ORDER BY subcat

出力:

| | サブキャット |
|------------|
| | クロームブック |
| | ノートブック |
| | ウルトラブック |

これがSQLFiddleのデモです

于 2013-11-08T06:48:18.237 に答える
0

私はあなたが話していると思うNotebooks->Notebooksので、次を使うことができます:

select cat,subcat,
       CASE WHEN subcat2=subcat THEN '' ELSE subcat2 END 
       as subcat2
  from items where cat='Computers' 
 group by subcat,
          CASE WHEN subcat2=subcat THEN '' ELSE subcat2 END 
 order by subcat asc

SQLFiddle デモ

于 2013-11-08T06:49:06.703 に答える