2

我的选择语句如下所示:

Select column1, column2
From Table1
Group By column2

column1是一个 CLOB,我想收到属于一组的值之一。我知道它们都是一样的,所以我得到哪一个并不重要。我已经尝试过类似的功能MINMAX但它们不接受 CLOB 作为类型。

需要明确的是,我不想聚合 CLOB,只需选择其中一个。

这是实际选择语句的简化,并且 GROUP-BY 子句是必要的。

所以有了这个数据:

column1       column2
qwerty          1
qwerty          1
asdfgh          2
asdfgh          2

我想得到:

qwerty          1
asdfgh          2

知道如何做到这一点吗?

4

3 回答 3

6

CLOB不能用于分组或在distinct子句内。

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

select min(dbms_lob.substr(column1)), column2
from foo
group by column2;
于 2013-09-03T09:40:55.417 回答
0

您可以使用子查询。添加唯一的列 ID,然后:

SELECT t1.col2,t2.col1
  FROM 
      (SELECT max(ID) as IDM, col2 FROM Table1 GROUP BY col2) t1 
  LEFT JOIN 
      Table1 t2
      ON t1.IDM=t2.ID
于 2013-09-03T09:33:47.227 回答
-1

Try something like this:

SELECT DISTINCT row1, row2 FROM Table1;
于 2013-09-03T09:27:51.083 回答