REPEAT函数在Oracle中等效

时间:2015-08-07 18:16:58

标签: sql oracle

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

2 个答案:

答案 0 :(得分:15)

挑剔:SQL * Plus没有任何功能。 数据库服务器(Oracle)提供了执行SQL的功能,并具有以下功能:

您正在寻找rpad()

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

将输出

**********

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

答案 1 :(得分:1)

对于单个字符,接受的答案正常。

但是,如果给定字符串中有多个字符,则需要使用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
#+-#+-#+-#+-#+-