我正在尝试将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]);
答案 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