我正在使用这个软件来管理我的Magento商店https://www.mag-manager.com
它具有使用SQL表达式批量编辑产品字段的功能,如下所述:http://store-manager-for-magento-documentation.emagicone.com/products-management/import-products/expression-editor
我不知道SQL表达式,但我正在围绕它们重新格式化我的SKU数字。这是场景和我想要实现的目标:
情景1
att_ean = 123456
config_grade = A级
config_operator = Vodafone
预期结果:123456GAVOD
场景2
att_ean = 123456
config_grade =全新的0KM
config_operator = Vodafone Spain
预期结果:123456BN0VODS
说明:
我想使用整个att_ean字符串。 我想在config_grade中使用每个单词的第一个字符(无论有多少单词) 我想使用config_grade中第一个单词的前3个字符和后续单词的第一个字符(如果有的话) 我希望所有字符都是大写的
这是我到目前为止所得到的:
CONCAT( [ATTRIBUTE(att_ean)],
substr([ATTRIBUTE(config_grade)], 1, 1),
substr([ATTRIBUTE(config_operator)], 1, 3),
'' )
这是方案1的结果:123456GVod
这是方案2的结果:123456BVod
答案 0 :(得分:0)
这使用各种SQL函数; CONCAT
,SUBSTRING
,CHARINDEX
& UPPER
CODE:
CONCAT([att_ean],
SUBSTRING([config_grade], 1, 1) + SUBSTRING([config_grade], CHARINDEX(' ', [config_grade]) + 1, 1) +
CASE WHEN 0 != CHARINDEX(' ', [config_grade], CHARINDEX(' ', [config_grade]) + 1)
THEN SUBSTRING([config_grade], CHARINDEX(' ', [config_grade], CHARINDEX(' ', [config_grade]) + 1) + 1, 1)
ELSE ''
END,
UPPER(SUBSTRING([config_operator], 1, 3) + SUBSTRING([config_operator], CHARINDEX(' ', [config_operator]) + 1, 1) +
CASE WHEN 0 != CHARINDEX(' ', [config_operator], CHARINDEX(' ', [config_operator]) + 1)
THEN SUBSTRING([config_operator], CHARINDEX(' ', [config_operator], CHARINDEX(' ', [config_operator]) + 1) + 1, 1)
ELSE ''
END))
输出:
att_ean config_grade config_operator newstring
123456 Grade A Vodafone 123456GAVODV
123456 Brand New 0KM Vodafone Spain 123456BN0VODS