【发布时间】:2015-04-25 17:35:06
【问题描述】:
Oracle10G 中是否有任何 SQL 查询可以提供以下示例中所需的输出。 查询应该首先打印名称,然后在第二行打印与字符串长度相等的“%”。
你能帮忙吗?
下面是表格列的示例
JIM
JOHN
MICHAEL
输出应该如下所示:
JIM
%%%
JOHN
%%%%
MICHAEL
%%%%%%%
【问题讨论】:
Oracle10G 中是否有任何 SQL 查询可以提供以下示例中所需的输出。 查询应该首先打印名称,然后在第二行打印与字符串长度相等的“%”。
你能帮忙吗?
下面是表格列的示例
JIM
JOHN
MICHAEL
输出应该如下所示:
JIM
%%%
JOHN
%%%%
MICHAEL
%%%%%%%
【问题讨论】:
这通常被认为是表示逻辑的问题,而不是数据库逻辑的问题。但是,一种选择是使用union all,然后使用length 和rpad 来获得正确数量的% 符号。您还需要建立一个行号以将订单保持在一起。
这是一种方法:
select name
from (
select name, rownum rn
from yourtable
union all
select rpad('%', length(name), '%') name, rownum + 1 rn
from yourtable ) t
order by rn, name
【讨论】:
您可以查看此链接 http://www.club-oracle.com/articles/oracle-pivoting-row-to-column-conversion-techniques-sql-166/
讨论了很多选项,这会有所帮助
【讨论】: