我编写了一个SQL查询,该查询将获取名称和大小的重复项:

SELECT t1.Filepath,
       t1.splitFilePath1(Filepath)
FROM Filemanager t1
INNER JOIN (SELECT splitFilePath1(Filepath),
                   Size
            FROM Filemanager
            GROUP BY splitFilePath1(Filepath),
                     Size
            HAVING COUNT(*) > 1) t2
ON t1.Size = t2.Size AND
   t1.splitFilePath1(Filepath) = t2.splitFilePath1(Filepath)


在上面的查询中,splitFilePath1(Filepath)是一个用户定义的函数,该函数将Filepath作为输入并返回文件名。接收到文件名后,我必须查找文件名和大小的重复项。


  收到错误:
  Near'(':语法错误


我无法理解它到底在哪里期望'('。

编辑:解决了!
查询:
    从Filemanager t1内连接中选择Filepath,splitFilePath1(Filepath)(选择Filepath作为Filepath1,splitFilePath1(Filepath),从Filemanager GROUP BY splitFilePath1(Filepath)中选择大小,大小HAVING COUNT(*)> 1)t2在t1上.Size = t2。大小AND splitFilePath1(t1.Filepath)= splitFilePath1(t2.Filepath1)

感谢lollat​​o!

最佳答案

t1.splitFilePath1(Filepath)更改为splitFilePath1(t1.Filepath),其他情况也类似。 t1.splitFilePath将引用t1中的列,并且在语法错误后具有()括号。

07-24 13:59