繁体   English   中英

重复 function 等效于 Oracle

[英]REPEAT function equivalent in Oracle

我想知道如何在 SQL*Plus 中实现与 REPEAT() 相同的功能。 例如考虑这个问题:显示字符“*”的次数与为给定表中的每个条目指定的 integer 属性指定的值一样多。

细想:SQL * Plus没有任何功能。 数据库服务器 (Oracle)具有执行SQL的能力,并具有以下功能:

您正在寻找rpad()

select rpad('*', 10, '*')
from dual;

将输出

**********

可以在手册中找到更多详细信息: https : //docs.oracle.com/cd/E11882_01/server.112/e41084/functions159.htm#SQLRF06103

对于单个字符,可接受的答案很好用。

但是,如果给定字符串中包含多个字符,则需要使用RPAD以及这样的length函数。

WITH t (str) AS
  ( 
   SELECT 'a'
   FROM DUAL
   UNION ALL SELECT 'abc'
   FROM DUAL
   UNION ALL SELECT '123'
   FROM DUAL
   UNION ALL SELECT '#+-'
   FROM DUAL
  )
SELECT RPAD(str, 5*LENGTH(str), str) repeated_5_times
FROM t;

输出

REPEATED_5_TIMES
---------------
aaaaa
abcabcabcabcabc
123123123123123
#+-#+-#+-#+-#+-

暂无
暂无

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

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