有没有任何方法将此SQL语句转换为ADF表达式(窗口元素)?
CASE
WHEN MAX(
IF (cd.index = 1, cd.value, NULL) IN ('product', 'productListing')) THEN
CASE
WHEN MAX(
IF (cd.index = 2,cd.value,NULL)) LIKE '%sunglasses%' THEN
'Sunglasses'
WHEN MAX(
IF (cd.index = 2,cd.value,NULL)) LIKE '%glasses%' THEN
'Glasses'
WHEN MAX(
IF (cd.index = 2,cd.value,NULL)) LIKE '%contact%lens%' THEN
'Contact_Lenses'
ELSE
'No_Mapped'
END
ELSE
'No_Mapped'
END AS PageCategory对于数据流中的窗口元素,我尝试了不同的方法,但没有使用正确的结果。
谢谢!
<-解决
解决方案:
case(
max(toString(iif(toInteger(index) == 1, value)) == 'product'), case(
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%sunglasses%') ,'Sunglasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%glasses%') ,'Glasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%contact%lens%') ,'Contact_Lenses',
toString('No_Mapped')
),
max(toString(iif(toInteger(index) == 1, value)) == 'productListing'),case(
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%sunglasses%') ,'Sunglasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%glasses%') ,'Glasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%contact%lens%') ,'Contact_Lenses',
toString('No_Mapped')
),
max(toString(iif(toInteger(index) == 1, 'No_Mapped')))
)发布于 2022-03-04 12:57:56
谢谢佩塔尔·斯托吉科维奇。张贴你的讨论作为回答,以帮助其他社区成员。
将SQL语句转换为ADF表达式。以下是可能的解决办法。
case(
max(toString(iif(toInteger(index) == 1, value)) == 'product'), case(
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%sunglasses%') ,'Sunglasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%glasses%') ,'Glasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%contact%lens%') ,'Contact_Lenses',
toString('No_Mapped')
),
max(toString(iif(toInteger(index) == 1, value)) == 'productListing'),case(
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%sunglasses%') ,'Sunglasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%glasses%') ,'Glasses',
like( max(toString(iif(toInteger(index) == 2, lower(value)))), '%contact%lens%') ,'Contact_Lenses',
toString('No_Mapped')
),
max(toString(iif(toInteger(index) == 1, 'No_Mapped')))
)https://stackoverflow.com/questions/70984171
复制相似问题