【问题标题】:Using Like operator in sql code. Syntax error在 sql 代码中使用 Like 运算符。语法错误
【发布时间】:2019-06-22 07:07:37
【问题描述】:

我想在代码中使用 4 到 5 个表。但是在代码之间我需要使用 like 运算符来使用 contains 属性。我写了一个代码,但代码给出了语法错误。请指教。

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM SelectedClearingName 
INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName) 
INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues) 
INNER JOIN [RCDT Database] ON ([RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & "" 
INNER JOIN SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue; 

【问题讨论】:

  • 语法错误不是和&符号有关吗?在 TSQL 中,您可能应该使用“AND”运算符。

标签: sql ms-access inner-join sql-like


【解决方案1】:

在 Access(标记的)SQL 中,它将是:

Like "*" & [Selectedvalues.ListBoxValues] & "*"

编辑:

将其简化为:

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM 
    [RCDT Database],
    SelectedClearingName 
INNER JOIN 
    Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName) 
INNER JOIN 
    SelectedValues ON (FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues) 
INNER JOIN 
    FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
INNER JOIN    
    SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue
WHERE
    [RCDT Database].FUNCTIONALITY Like "*" & [SelectedValued.ListBocValues] & "*" 

这里缺少的是我永远记不起的 Access SQL 的复杂括号。

因此,删除 Where 子句,使用 GUI 设计器创建内部连接,然后添加 Where 子句。

【讨论】:

  • 它仍然无法正常工作。它显示语法错误并突出显示 rcdt database.specification
【解决方案2】:

似乎你有很多 () 围绕连接元素

SELECT 
    [RCDT Database].FUNCTIONALITY, 
    [RCDT Database].SPECIFICATION, 
    [RCDT Database].[TEST NAME]
FROM  SelectedClearingName 
    INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName)
    INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) 
    INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues)
   ...........

【讨论】:

  • 还是不行..请看一下。 FROM SelectedClearingName INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName) INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing) INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues) INNER JOIN [RCDT Database] ON ([ RCDT Database.FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & "" INNER JOIN SelectedPaytype ON ([RCDT Database.[PAY TYPE]]=SelectedPaytype.PaytypeValue;
  • RCDT 数据库的关闭也是错误的 .. asnwer 已更新
【解决方案3】:

MS Access 需要在 JOINs 周围加上括号:

SELECT [RCDT Database].FUNCTIONALITY, [RCDT Database].SPECIFICATION, [RCDT Database].[TEST NAME]
FROM ((((SelectedClearingName INNER JOIN
         Clearing
         ON SelectedClearngName.ClearingName = Clearing.ClearingName
        ) INNER JOIN
        FunctionalityWiseClearing
        ON Clearing.ClearingName = FunctionalityWiseClearing.Clearing
       ) INNER JOIN
       SelectedValues
       ON FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues
      ) INNER JOIN
      [RCDT Database]
      ON [RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & "" 
     ) INNER JOIN
     SelectedPaytype
     ON ([RCDT Database].[PAY TYPE] = SelectedPaytype.PaytypeValue; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多