终止字符串

问题描述:

我需要创建以下字符串;终止字符串

'A-NUPHAT','AMIRA','AMNAD','ANAT','ANUCHAT', 

,但没有最后一个逗号:

这是我的查询:

select listagg( '''' || empName||'''' || ',' ) within group (order by empName) 
    from (select distinct T4.Rep_Emp_Name as empName 
    from YAN_TASKS t0 
    inner join YAN_PLATES  t1 
    on  t0.firm_code = T1.Firm_Code 
    and T0.Plate_Code= T1.Plate_Code 
    inner join Rep_Emp_Names t2 
    on T1.Firm_Code = T2.Firm_Code 
    and T1.Rep_Emp_Code=t2.REP_EMP_CODE 
    inner join YAN_EMP_TASKS_PLAN t3 
    on t0.firm_code=t3.firm_code 
    and T0.Task_Doc_Nbr = T3.Task_Doc_Nbr 
    inner join Rep_Emp_Names t4 
    on t4.firm_code = t3.firm_code 
    and t4.Rep_Emp_Code=t3.Rep_Emp_Code) ) 

如何重写查询,没有得到最后一个逗号?

+1

这不是T-SQL(SQL Server中使用的SQL方言)。这个问题'sql-server'标签不正确。请用正确的SQL方言编辑你的问题和标签。 –

+1

这看起来像Oracle。 –

我认为问题在于您将逗号连接到您的字符串值。您应该指定逗号作为分隔符,而不是争论:listagg()是足够聪明的知道,我们并不需要一个尾随逗号:

​​

缺省的分隔符是null,所以如果我们不指定参数甲骨文刚runseverythingtogetherintoasinglestring :)。