1

我尝试在 FB 2.5 中构建一个如下所示的 SP:

where 
   (
      (kunde between :kdvon and :kdbis)
      and 
          (AdrGrp between :AdrGrpvon and :AdrGrpbis)
      and
          (auftragstyp between :AuftrTypVon and :AuftrTypBis)
      and
          (Status between :statusvon and :statusbis)
      and
      IF LFDNR <> 0 THEN (LFDNUMMER  = :LFDNR)
      IF BESTELLTAG <> 0 then (bestelldatum  = :BESTELLTAG)
   )

在插入 If 语句之前,它运行良好。之后,我收到消息 SQL 错误代码 = -104。令牌未知 - 第 156 行,第 14 列。LFDNR。

IF 条件定义为输入参数。使用冒号 : 将它们标记为参数不起作用。

问题是否可以以这种方式在“Where”中使用“If”?我必须如何使用条件参数?

蒂亚·罗尔夫

4

1 回答 1

2

试试这个:

...
AND (LFNDR = 0 OR LFDNUMMER = :LFDNR)
AND (BESTELLTAG = 0 OR bestelldatum = :BESTELLTAG) 

(我不知道子句中是否LFNDRBESTELLTAG是参数/变量或列= 0- 如果它们是参数(与右手部分相同),您可能应该用':'标记它们)

于 2012-09-03T10:48:38.767 回答