我在甲骨文的一个精选案例中犯了一些错误,我将感谢stackoverflow社区的帮助。
我试图做的是基于一个条件(列的值)来返回一个或多个列。
我总是需要我的查询返回三列:文章、段落、子段落
如果我正在检查的列列表的值是article,那么我只需要将article和null返回给段落和子段落。如果一列的值是paragraph,我需要同时返回paragraph和article,sub\ u paragraph应该为null。如果列的值是sub\u paragraph,我需要返回article、paragraph和sub\u paragraph的所有值。
SELECT
CASE
WHEN att.list_value = 'Sub_Paragraph' THEN att.column_with_subpar_value
END AS sub_paragraph,
CASE
WHEN att.list_value = 'Sub_Paragraph' THEN att.column_with_par_value
END AS paragraph,
CASE
WHEN att.list_value = 'Sub_Paragraph' THEN att.column_with_article_value
END AS article,
CASE
WHEN att.list_value = 'Paragraph' THEN att.column_with_par_value
END AS paragraph,
CASE
WHEN att.list_value = 'Paragraph' THEN att.column_with_article_value
END AS article,
CASE
WHEN att.list_value = 'Article' THEN att.column_with_article_value
END AS article
FROM
att
WHERE
id = 1
但通过这种方法,我得到了像第1篇、第2篇之类的专栏文章。成功的最佳方法是什么?
2条答案
按热度按时间tkqqtvp11#
看看你的要求,下面的希望就是你所期待的。
bvhaajcl2#
解决此问题的方法之一是使用一个已知的分隔符将所有列连接到一个列中,以后可以将分隔符拆分为所需的列集。