使用字段分隔符

时间:2015-07-09 07:34:46

标签: sql oracle oracle11g

我有一个问题:

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

我需要做的就是输出之间的字段分隔符。

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

3 个答案:

答案 0 :(得分:3)

如果importFrom(MASS,mvrnorm) importFrom(Rcpp,sourceCpp) importFrom(corpcor,make.positive.definite) importFrom(plyr,ddply) importFrom(separationplot,separationplot) importFrom(stats,AIC) importFrom(stats,BIC) importFrom(stats,logLik) importFrom(stats,nobs) importFrom(xtable,xtable) 不符合您的要求,那么LISTAGG可能有所帮助.--

DUMMYCOL

答案 1 :(得分:3)

您可以使用以下内容: -

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

答案 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 的值周围使用单引号,它会不必要地将其转换为字符串,只需将其保留为 NUMBER