TableA包含许多记录,其中col1字段与前六个字符重复。
col1包含:football and footbcuu and footbcavity
我需要找到前五个字符重复的所有行。
SELECT * FROM tableaA A WHERE
rowid >
(SELECT min(rowid) FROM tableA B
WHERE B.substr (col1, 1, 5)= A.substr (col1, 1, 5));
语句意外结束的错误,我认为只是括号。
有人可以帮助解决这个问题吗?
谢谢!
答案 0 :(得分:0)
我在声明的末尾看到一个缺失的括号
SELECT * FROM tableaA A WHERE
rowid >
(SELECT min(rowid) FROM tableA B
WHERE B.substr (col1, 1, 5)= A.substr (col1, 1, 6));
答案 1 :(得分:0)
除语法错误外,我不了解您尝试的逻辑。
以下查询获取前五个字符重复的所有行:
select a.*
from (select a.*, count(*) over (partition by substr(a.col1, 1, 5)) as cnt
from tableA a
) a
where cnt > 1
order by a.col1;