返回n个空格

时间:2015-05-14 12:04:40

标签: sql oracle

我需要一个返回我需要的n个空格("")的查询 追加我一个固定长度的文件。

到目前为止,我已经能够创建

select ' ' from dual connect by level < 254

这会返回多条记录,我只需要一条253个空格的记录。

3 个答案:

答案 0 :(得分:3)

我认为这会奏效:

select rpad(' ', 254)
from dual;

答案 1 :(得分:2)

检查LPAD功能:

select LPAD(' ', 254, ' ') from dual connect by level < 254;

p.s。 :如果只需要一行,请使用

select LPAD(' ', 254, ' ') from dual;

这会为字符串' '预先填充多个空格' ',因此返回的值的长度为254.

答案 2 :(得分:1)

  

从水平双重连接中选择''&lt; 254

只为了一些乐趣!您可以使 查询工作,而不使用 LPAD 。使用字符串聚合,例如 LISTAGG

例如,

WITH DATA AS(
SELECT ' ' str FROM dual CONNECT BY LEVEL < 254
)
SELECT listagg(str, '') WITHIN GROUP(ORDER BY str) str FROM DATA;

您可以检查长度以查看它创建的空格数:

SQL> WITH DATA AS(
  2  SELECT ' ' str FROM dual CONNECT BY LEVEL < 254
  3  )
  4  SELECT LENGTH(listagg(str, '') WITHIN GROUP(ORDER BY str)) str FROM DATA;

       STR
----------
       253

虽然这也提供了所需的输出,但这只是为了好玩,适当的方法是使用 LPAD