在select语句中使用CLOB进行分组

Ulr*_*rik 2 sql oracle

我的select语句如下所示:

Select column1, column2
From Table1
Group By column2
Run Code Online (Sandbox Code Playgroud)

column1是一个CLOB,我想收到一个属于一个组的值.我知道他们都是一样的,所以我得到哪一个并不重要.我尝试了类似的功能MIN,MAX但他们不接受CLOB作为类型.

要明确我不想聚合CLOB只选择其中一个.

这是实际select语句的简化,并且GROUP-BY子句是必需的.

所以这个数据:

column1       column2
qwerty          1
qwerty          1
asdfgh          2
asdfgh          2
Run Code Online (Sandbox Code Playgroud)

我想得到:

qwerty          1
asdfgh          2
Run Code Online (Sandbox Code Playgroud)

知道如何做到这一点?

a_h*_*ame 6

CLOB值不能被用于分组或一个内部distinct子句.

您唯一的机会是转换CLOB为varchar,但这意味着您无法比较列的完整内容(注意:这些是,而不是行).如果您确定所有CLOB值都小于8000字节,则可以使用以下内容:

select min(dbms_lob.substr(column1)), column2
from foo
group by column2;
Run Code Online (Sandbox Code Playgroud)