无效过程调用LEFT功能

时间:2018-01-18 17:18:23

标签: sql ms-access

我正在尝试将MAH.[Country Short Trade Name]中的第一个单词写入空格并将其写入新列PRODUCT_NAME但是当我使用LEFT函数时,它会给出错误:

Invalid Procedure Call.

查询无法使用LEFT函数。

已检查但声明中没有遗漏期限。任何帮助表示赞赏!

SELECT DISTINCT MAH.[PDS Id] AS MAH_NUMBER, 
       MAH.[COUNTRY] AS COUNTRY, 
       MAH.Strength, SAPSKU.[Product] AS SKU_PRODUCT, 
       SAPSKU.[Reporting Material Name], 
       SAPSKU.[MARKET] AS MARKET, 
       LEFT(MAH.[Country Short Trade Name],
       InStr(MAH.[Country Short Trade Name], " ")-1) AS PRODUCT_NAME
FROM MAH, SAPSKU
WHERE (SAPSKU.[Reporting Material Name] like "*" & MAH.[Strength] & "*" ) 
AND (SAPSKU.[Product ] LIKE "*" & MAH.[Country Short Trade Name] & "*") 
AND (MAH.[COUNTRY] = SAPSKU.[MARKET]);

2 个答案:

答案 0 :(得分:0)

尝试在字符串末尾添加空格 - 如果字符串中没有空格,则会出错

Observable.timer( N, SECONDS )
  .flatMap( ignored -> Flowable.create(
    (FlowableOnSubscribe<Work>) emitter -> workEmitter = emitter.serialize(),
       BackpressureStrategy.BUFFER)
    .observeOn(Schedulers.from(executor)))
  .subscribe( work -> process(work));

答案 1 :(得分:0)

可能一些国家短名称没有空格,因此Instr()返回零,然后在-1,LEFT无法有效运行:

考虑换行IIF()

IIF(InStr(Nz(MAH.[Country Short Trade Name]), " ") = 0,
    MAH.[Country Short Trade Name],
    LEFT(MAH.[Country Short Trade Name],
         InStr(MAH.[Country Short Trade Name], " ")-1)) AS PRODUCT_NAME