我正在尝试创建一个基于IF语句的连接,该语句具有多个条件和一个LEN,但无法使其工作。
SELECT
"Datafeed-WO"."Billing Cd" AS 'Billing Type',
IF(LEN("Datafeed-WO"."Zip") = 6, 'CDA', 'USA') AS 'Country',
"BudgetTbl"."BudYr" AS 'Budget Yr',
"BudgetTbl"."Budget" AS 'Group Budget'
FROM "Datafeed-WO"
LEFT JOIN "BudgetTbl"
ON ( IF(LEN("Datafeed-WO"."Zip") = 6, 'CDA', 'USA') = "BudgetTbl"."Country")
AND ("Datafeed-WO"."Billing Cd" = "BudgetTbl"."Billing Cd")谢谢你帮我解决这个问题!
发布于 2015-10-13 22:21:38
你需要把所有的引号(‘和’)改成反引号(`),然后再执行一次。从此以后,在表名和列名中不要包含空格也很重要。
希望这就是你想要的:
select
dw.`Billing Cd` as `Billing_Type`,
if(len(dw.`Zip`) = 6, 'CDA', 'USA') as `Country`,
bt.`BudYr` as `Budget_Yr`,
bt.`Budget` as `Group_Budget`
from `Datafeed-WO` dw
left join `BudgetTbl` bt on (dw.`Billing Cd` = bt.`Billing Cd`) and ((len(dw.`Zip`) = 6 && bt.`Country` = 'CDA') || (len(dw.`Zip`) != 6 && bt.`Country` = 'USA'));https://stackoverflow.com/questions/33104087
复制相似问题