使用字段分隔符连接 SQL 查询的结果。

4

我有一个问题:

SELECT *  FROM (SELECT col1,col2,col3,ROWNUM R 
                FROM TBL WHERE  ROWNUM < 3) 
          WHERE R='2';

(rownum 每次都会改变,每次只提供一条记录)
column1      column2       column3
alpha         beta          gamma

我需要的结果是:

alpha,beta,gamma

我只需要在输出内容之间加入字段分隔符。

这与下面建议的链接无关,也不是重复!


点击这里查看相关的编程内容。 - m.cekiera
但我认为LISTAGG返回的是单列结果,而这个问题有不同的列。 - Ashish Patil
不,这不是LISTAGG主题的重复。OP正在询问字符串连接而不是字符串聚合。我正在重新打开它。 - Lalit Kumar B
@LalitKumarB:不过,原帖的作者自己标记了它为重复问题... - Qantas 94 Heavy
@Qantas94Heavy 这很奇怪,因为 OP 把我的答案标记为已回答,然后接受了一个完全不同的主题作为重复。我明白为什么机器人用户将其标记为重复。 - Lalit Kumar B
有没有可能把它改回去? - VRVigneshwara
3个回答

3
如果您不需要使用 LISTAGG,那么 DUMMYCOL 可能会有所帮助。--
   SELECT *
FROM
  (SELECT col1,
    ','AS DUMMYCOL,
    col2,
    ','AS DUMMYCOL,
    col3,
    ROWNUM R
  FROM TBL
  WHERE ROWNUM < 3
  )
WHERE R='2';

3
您可以使用以下内容:
SELECT *  
FROM (SELECT col1||','||col2||','||col3,ROWNUM R 
      FROM TBL WHERE  ROWNUM < 3) 
WHERE R='2';

3
有两种方式: CONCAT 函数
SELECT *
FROM
  (SELECT concat(concat(concat(concat('a', ','), col2), ','), col3),
    ROWNUM R
  FROM TBL
  WHERE ROWNUM < 3
  )
WHERE R=2;

|| 连接运算符

SELECT *
FROM
  (SELECT col1||','||col2||','||col3,ROWNUM R FROM TBL WHERE ROWNUM < 3
  )
WHERE R=2;

另外,不需要在 ROWNUM 的值周围使用单引号,这会将其不必要地转换为 字符串,只需把它留作 数字


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接