繁体   English   中英

从多列中选择多行作为一列

[英]Selecting multiple rows from multiple columns as one column

如标题所示,我正在尝试从Passive,Q,W,E,R中将不为空的行选择为一列http://i.imgur.com/SzNl9WI.png ,这是我尝试使用的行还没有运气

SELECT (Passive + Q + W + E + R) AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina'
AND (
(Passive!='')
or(Q!='')
or(W!='')
or(E!='')
or(R!='')
)

如果我可以将其与以前的查询结合使用,那就更好了,它可以选择不为空的列名

SELECT column_name 
                        from information_schema.columns, patches.champions
                        where 
                        table_name = 'champions'
                        AND ((column_name ='Passive' and Passive!='')
                        or (column_name='Q' and Q!='')
                        or (column_name='W' and W!='')
                        or (column_name='E' and E!='')
                        or (column_name='R' and R!='')

                        )

                         AND Patch_No = '0.02'
                        AND Champion = 'Katarina'

编辑此查询给我正确的结果,但在1行中,我希望结果在单独的行中

SELECT CONCAT(Passive, Q, W, E, R) AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina'
AND (
(Passive!='')
or(Q!='')
or(W!='')
or(E!='')
or(R!='')
)

尝试这个:

SELECT Passive AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' AND 
      Passive IS NOT NULL AND Passive != ''
UNION 
SELECT Q AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' AND 
      Q IS NOT NULL AND Q != ''
UNION 
SELECT W AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' AND 
      W IS NOT NULL AND W != ''
UNION 
SELECT E AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' AND 
      E IS NOT NULL AND E != ''
UNION 
SELECT R AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' AND 
      R IS NOT NULL AND R != ''

您可以使用CONCAT

SELECT CONCAT(Passive, Q,  W, E,  R) AS spellchamps
FROM champions 
WHERE Patch_No='0.02' AND Champion = 'Katarina' 
AND '' NOT IN (Passive, Q, W, E, R)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM