0

我对“listagg”功能有一点问题。我想用它把行连接成一个字符串,用逗号作为分隔符。我设法做到了这一点:

SELECT LISTAGG(U.name,', ') 
       WITHIN GROUP(ORDER BY NLSSORT(U.name,'NLS_SORT=polish'))
  FROM users U
  WHERE(U.birth_date BETWEEN :date1 AND :date2);

问题是波兰语字符,如 'ą'、'ę' 等在结果中显示不正确。我该如何解决?

波兰语字符在 SQL Developer 中无法正确显示;例如,我有用户“Grzegorz Brzęcki-Dębina”和“Paweł Kukiz”,在输出中我得到“Grzegorz-Brz*cki-D*bina, Pawe* Kukiz”。

select name from users 

正确显示它。列是 NVARCHAR2。

伙计,你是个天才:)那个链接很有帮助。我需要的是:

SELECT LISTAGG(CAST(U.name AS VARCHAR2(10)),', ') 
       WITHIN GROUP(ORDER BY NLSSORT(U.name,'NLS_SORT=polish'))
  FROM users U
  WHERE(U.birth_date BETWEEN :date1 AND :date2);

谢谢 :)

4

0 回答 0