通常,WM_CONCAT是一个聚合函数,它从表中返回用逗号分隔的值,如下所示。
假设我有一个foo
像这样的表:
col_id | col_text
111 | This
111 | is
111 | a
111 | test.
如果我使用此查询:
SELECT CAST(WM_CONCAT(col_text) AS VARCHAR2(100)), col_id FROM foo
结果将是
This, is, a, test.
是否有可能改变分离器(','
)到其他字符,如'.'
或'|'
的的WM_CONCAT()
功能?
还是创建一个可以像这样执行的用户定义函数WM_CONCAT()
?
您可能要使用
LISTAGG
。
SELECT col_id,
LISTAGG(col_text, '|') WITHIN GROUP (ORDER BY col_text) text
FROM table1
GROUP BY col_id
输出:
| COL_ID | TEXT |
----------------------------
| 111 | This|a|is|test. |
SQLFiddle
更新 如果您需要在列表中获取不同的文本值
SELECT col_id,
LISTAGG(col_text, '|')
WITHIN GROUP (ORDER BY col_text) text
FROM
(
SELECT DISTINCT col_id, col_text
FROM table1
)
GROUP BY col_id
SQLFiddle
问题内容: 是否可以从“。”更改小数逗号。(点)到MySQL输出中的其他字符(逗号)?我不想使用像这样的函数,我只想使用我通常使用的所有查询,而无需进行任何修改。我正在寻找(一些变量,语言环境等)设置。我试图搜索手册,但没有成功。 问题答案: 不,你不能。这就是SQL标准,而MySQL遵循它(至少在这一点上)。 问题并不是输出的真正问题(如您所提到的,大多数DBMS中都有各种功能),而是输出。如果
尽管已将pcs区域分隔符更改为“.”Netbeans 12仍在使用“,”。我已经尝试将以下内容添加到netbeans中。conf文件,但它不起作用: -J-Duser.language=en-J-Duser.country=US 如何通过conf文件强制netbeans使用特定的本地文件?
但ibatis会抛出以下错误: ...执行时出错:delimiter//drop函数if存在get_next_value_test//create函数get_next_value_test(p_name varchar(30))返回int deterministic sql security invoker begin declare current_val integer。原因:com.mysq
我正在从SAP Hybris导出数据。我导入的数据也有分号(;)。在导出的数据中,我看到分隔符是;这阻止了我拆分数据和工作。有没有办法把这个分隔符改成别的? 我知道这可以通过更改“csv.fieldseparator”属性来实现,但这会影响到所有地方,我在生产中负担不起。。如有任何建议,将不胜感激
问题内容: 这似乎是一个愚蠢的问题,但是此函数是否会实际影响变量(我将如何使用此变量的上下文更大,但这基本上是我不确定的问题)?(我专门问有关java) 问题答案: 考虑一个稍微不同的示例: 运行该程序的输出为: 该变量将更改为true,但是一旦方法返回,该参数变量就会消失(这就是人们所说的“超出范围”的意思)。但是,传递给方法的变量保持不变。
问题内容: 我已经编写了一个JavaScript函数,该函数使用setInterval每隔十分之一秒的时间对字符串进行一定次数的迭代。 我不想将间隔设置为特定的数字,而是希望每次运行时都基于一个计数器对其进行更新。所以代替: 就像这样: 不幸的是,那没有用。似乎“ 10 *计数器”等于0。 因此,如何在每次匿名函数运行时调整时间间隔? 问题答案: 使用代替。然后,回调将负责引发下一个超时,此时您可