无法使用用户定义的函数执行sql查询

时间:2014-03-19 13:58:34

标签: c++ sqlite

我编写了一个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作为输入并返回filename。收到文件名后,我必须找到文件名和大小的重复。

  

收到错误:   接近'(':语法错误

我无法理解'('。

的确切位置

编辑:解决!! 查询:     SELECT Filepath,splitFilePath1(Filepath)FROM Filemanager t1 INNER JOIN(SELECT Filepath as Filepath1,splitFilePath1(Filepath),Size FROM Filemanager GROUP BY splitFilePath1(Filepath),Size HAVING COUNT(*)> 1)t2 ON t1.Size = t2 .Size AND splitFilePath1(t1.Filepath)= splitFilePath1(t2.Filepath1)

感谢lollat​​o !!

1 个答案:

答案 0 :(得分:1)

t1.splitFilePath1(Filepath)更改为splitFilePath1(t1.Filepath),并将其他事件更改为t1.splitFilePatht1会引用()中的列,并且在语法错误之后会有{{1}}个parens。