查询以获取 Oracle 10g 中下一行中的 % 符号数 = 字符串长度

Posted

技术标签:

【中文标题】查询以获取 Oracle 10g 中下一行中的 % 符号数 = 字符串长度【英文标题】:Query to get number of % sign = length of string in the next row in Oracle 10g 【发布时间】:2015-04-25 17:35:06 【问题描述】:

Oracle10G 中是否有任何 SQL 查询可以提供以下示例中所需的输出。 查询应该首先打印名称,然后在第二行打印与字符串长度相等的“%”。

你能帮忙吗?

下面是表格列的示例

JIM
JOHN
MICHAEL

输出应该如下所示:

JIM
%%%
JOHN
%%%%
MICHAEL
%%%%%%%

【问题讨论】:

【参考方案1】:

这通常被认为是表示逻辑的问题,而不是数据库逻辑的问题。但是,一种选择是使用union all,然后使用lengthrpad 来获得正确数量的% 符号。您还需要建立一个行号以将订单保持在一起。

这是一种方法:

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
SQL Fiddle Demo

【讨论】:

【参考方案2】:

您可以查看此链接 http://www.club-oracle.com/articles/oracle-pivoting-row-to-column-conversion-techniques-sql-166/

讨论了很多选项,这会有所帮助

【讨论】:

以上是关于查询以获取 Oracle 10g 中下一行中的 % 符号数 = 字符串长度的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Oracle10g 中的同一查询中进行插入和删除?

Oracle:获取查询以始终准确返回一行,即使没有数据可找到

win7下安装oracle10g提示无法确定主机ip地址的解决方案

如何在 Play 框架中执行查询(使用 Oracle 10g)

归档模式下怎么查询oracle 10g归档日志存放的路径?

在 oracle 表单 10g 中的 LOV 填充后未触发后查询触发器