我想基于等式约束d:\dl
将新行附加到table-1 lower(rdl.subdir) = lower(tr.n1)
,其中rdl和tr将是f:\rdl
和f:\tr
的预期别名分别表。
在VFP9中运行以下命令时,我收到function name is missing ).
消息:
INSERT INTO d:\dl SELECT * FROM f:\rdl WHERE (select LOWER(subdir)FROM f:\rdl in (select LOWER(n1) FROM f:\tr))
我使用in
语法,而不是基于别名的相等语句lower(rdl.subdir) = lower(tr.n1)
,因为我不知道在此命令中定义别名的位置。
答案 0 :(得分:2)
通常,获得此类工作的最佳方法是首先使查询工作并为您提供所需的结果,然后在INSERT中使用它。
通常,在SQL命令中,您可以通过将别名放在表名之后来分配别名,无论是否包含关键字AS。在这种情况下,您不需要别名,因为您想要的那些与表名相同,这是默认值。
如果您展示的是您的确切代码并且您在VFP中运行它,那么第一个问题就是您错过了行之间的延续字符。
你肯定也做了太多的工作。试试这个:
INSERT INTO d:\dl ;
SELECT * ;
FROM f:\rdl ;
JOIN f:\tr ;
ON LOWER(rdl.subdir) = LOWER(tr.n1)