Maison > base de données > tutoriel mysql > le corps du texte

Oracle子句GROUP BY CUBE续

WBOY
Libérer: 2016-06-07 17:17:55
original
1091 Les gens l'ont consulté

上篇日志《ORACLE子句GROUP BY CUBE》中的问题稍作变化,现在每个字段有3个状态,SQL该如何写呢?这时CUBE的机制恐怕没有办法构成

上篇日志《Oracle子句GROUP BY CUBE》(见  )中的问题稍作变化,现在每个字段有3个状态,SQL该如何写呢?这时CUBE的机制恐怕没有办法构成3的八次方行数据了,只能另寻办法。以下代码是以3列为例的一个比较啰嗦的方案,仅供参考。

with base as
(select 0 as a1, 0 as a2, 0 as a3
   from dual
 union all
 select 1 as a1, 0 as a2, 0 as a3
   from dual
 union all
 select 9 as a1, 0 as a2, 0 as a3 from dual)
select b.a1,decode(c.le,1,0,2,1,3,9) as a2,decode(d.le,1,0,2,1,3,9) as a3
 from base b,
      (select level as le
         from dual
       connect by level
       (select level as le
         from dual
       connect by level
       order by a1,a2,a3
 
惭愧,,有点低级错误啦。修改后代码如下:

with base as
 (select 0 as a1, 0 as a2, 0 as a3
   from dual
 union all
 select 1 as a1, 0 as a2, 0 as a3
   from dual
 union all
 select 9 as a1, 0 as a2, 0 as a3 from dual),
mult as
 (select level as le
   from dual
 connect by level
select b.a1,
      decode(m1.le, 1, 0, 2, 1, 3, 9) as a2,
      decode(m2.le, 1, 0, 2, 1, 3, 9) as a3
 from base b, mult m1, mult m2
 order by a1, a2, a3

linux

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal