Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql select语句中带有CLOB的Group by_Sql_Oracle - Fatal编程技术网

Sql select语句中带有CLOB的Group by

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语句如下所示:

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