String 终止字符串

String 终止字符串,string,oracle,String,Oracle,我需要创建以下字符串 '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 i

我需要创建以下字符串

 '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)   )

如何在不获取最后一个逗号的情况下重写查询?

我认为问题在于将逗号连接到值字符串。您应该指定逗号作为分隔符参数:
listag()
足够聪明,可以知道我们不需要后面的逗号:

 listagg(''''||empName||'''' , ',') 
         ^                     ^
         aggregation arg       delimiter arg 

默认分隔符是
null
,因此如果不指定参数,Oracle只需运行SeverythingTogetherInToAsingString:)

我认为问题在于,您将逗号连接到了值字符串中。您应该指定逗号作为分隔符参数:
listag()
足够聪明,可以知道我们不需要后面的逗号:

 listagg(''''||empName||'''' , ',') 
         ^                     ^
         aggregation arg       delimiter arg 

默认分隔符是
null
,因此如果不指定参数,Oracle只需运行SeverythingTogetherInToAsingString:)

这不是T-SQL(SQL Server中使用的SQL方言)。对于此问题,
sql server
标记不正确。请用正确的SQL方言提问和标记。这看起来像Oracle。这不是T-SQL(SQL Server中使用的SQL方言)。对于此问题,
sql server
标记不正确。请用正确的SQL方言提问和标记。这看起来像Oracle。