我对“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);
谢谢 :)