Sql select语句中带有CLOB的Group by
我的select语句如下所示:Sql select语句中带有CLOB的Group by,sql,oracle,Sql,Oracle,我的select语句如下所示: Select column1, column2 From Table1 Group By column2 column1是CLOB,我想接收属于一个组的一个值。我知道它们都是一样的,所以我得到哪一个并不重要。我尝试过MIN和MAX等函数,但它们不接受CLOB类型 说清楚一点,我不想把CLOB加在一起,只需选择其中一个即可 这是对实际select语句的简化,必须使用GROUP-BY子句 因此,根据这些数据: column1 column2 qwerty
Select column1, column2
From Table1
Group By column2
column1
是CLOB,我想接收属于一个组的一个值。我知道它们都是一样的,所以我得到哪一个并不重要。我尝试过MIN
和MAX
等函数,但它们不接受CLOB类型
说清楚一点,我不想把CLOB加在一起,只需选择其中一个即可
这是对实际select语句的简化,必须使用GROUP-BY子句
因此,根据这些数据:
column1 column2
qwerty 1
qwerty 1
asdfgh 2
asdfgh 2
我想得到:
qwerty 1
asdfgh 2
你知道怎么做吗?试试这样的方法:
SELECT DISTINCT row1, row2 FROM Table1;
select min(dbms_lob.substr(column1)), column2
from foo
group by column2;
您可以使用子查询。
添加唯一的列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
CLOB
值不能用于分组或在distinct
子句中使用
您唯一的机会是将CLOB
转换为varchar,但这意味着您无法比较列的完整内容(注意:这些是列,不是行)。如果确定所有CLOB值都小于8000字节,则可以使用以下内容:
SELECT DISTINCT row1, row2 FROM Table1;
select min(dbms_lob.substr(column1)), column2
from foo
group by column2;
您不能将
DISTINCT
与CLOB
列一起使用。问题是我有两行,由于CLOB,我无法使用DISTINCT