【问题标题】:Trying to get the result in single row using sql? [duplicate]尝试使用 sql 在单行中获取结果? [复制]
【发布时间】:2013-12-02 11:11:23
【问题描述】:

我正在尝试显示所有员工 ID

我需要这样的结果

emp_id

10,11,12,13,14,15..,...

尝试时

SELECT LISTAGG(emp_id, ',') WITHIN GROUP (ORDER BY emp_id) AS ID FROM employees GROUP BY emp_id;

我遇到了错误

ORA-00923: FROM keyword not found where expected

问题出在哪里?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    使用LISTAGG 函数。有关详细信息,请参阅here。试试这样,

    SELECT listagg(emp_id,',') WITHIN GROUP(ORDER BY emp_id) t 
    FROM   employees;
    

    【讨论】:

      【解决方案2】:

      SQL 试试

       SELECT GROUP_CONCAT(emp_id) as emp_id FROM employees;
      

      http://sqlfiddle.com/#!2/90dd2/1 的工作演示

      对于甲骨文

      SELECT LISTAGG(emp_id,',') WITHIN GROUP(ORDER BY emp_id) as emp_id 
      FROM   employees;
      

      http://sqlfiddle.com/#!4/af004/9 上的演示

      【讨论】:

        【解决方案3】:

        试试这个

        SELECT CONCAT(emp_id,',') FROM employees;
        

        【讨论】:

          【解决方案4】:

          试试这个

           declare @empid nvarchar(500)=''
              select @empid=@empid+Emp_id + ',' from tblemployee
              select substring(@empid,0,len(@empid)-1)
          

          【讨论】:

            【解决方案5】:

            试试这个:

            SELECT GROUP_CONCAT(emp_id) as emp_id FROM employees;
            

            【讨论】:

              猜你喜欢
              • 2022-01-20
              • 2014-07-05
              • 1970-01-01
              • 1970-01-01
              • 2012-07-06
              • 2021-02-15
              • 2017-04-23
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多