gpt4 book ai didi

sql - Oracle中添加逗号(,)

转载 作者:行者123 更新时间:2023-12-02 18:35:23 24 4
gpt4 key购买 nike

给出这个查询:

select distinct subject_key
from mytable

结果:

subject_key
-----------
90896959
90895823
90690171
90669265
90671321

如何在 Oracle 中编写查询(使用 Aqua Data Studio 后端 Oracle 8i)结果:

subject_key
-----------
90896959,
90895823,
90690171,
90669265,
90671321

谢谢大家!我是否希望将输出更改为横向而不是向下,如下所示。怎么写啊,同一个平台。谢谢。

subject_key
90896959, 90895823, 90690171, 90669265, 90671321

最佳答案

Oracle 没有像 MySQL 的 GROUP_CONCAT 这样的功能,而这正是您所要求的功能。 Various options for such string aggregation are provided on this page - 一种是使用自定义函数:

CREATE OR REPLACE FUNCTION get_subjectkey (IN_PK IN MYTABLE.PRIMARY_KEY%TYPE)
RETURN VARCHAR2
IS
l_text VARCHAR2(32767) := NULL;
BEGIN

FOR cur_rec IN (SELECT subject_key
FROM MYTABLE
WHERE primary_key = IN_PK) LOOP
l_text := l_text || ',' || cur_rec.ename;
END LOOP;

RETURN LTRIM(l_text, ',');
END;

然后你可以这样使用它:

SELECT get_subjectkey(?) AS subject_key
FROM DUAL

...替换“?”与主键值。

以前

假设您只想在列值末尾添加逗号,请使用:

SELECT DISTINCT TO_CHAR(subject_key) || ','
FROM MYTABLE

双管道——“||” -- 是 Oracle [、PostgreSQL 和现在的 ANSI] 在 SQL 中连接字符串的方法。我使用 TO_CHAR 显式转换数据类型,但您可以使用:

SELECT DISTINCT subject_key || ','
FROM MYTABLE

...如果没有必要的话。

关于sql - Oracle中添加逗号(,),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com