我被指派了一个ExactTarget任务,它使用Ampscript。试着在这里学习。请参阅下面的代码片段:
%%[
Var @testString, @testOutput
Set @testString = Qwerty
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
TestOutput:%%= v(@testOutput) =%%如果testString包含~,则代码工作,但是当字符串中没有~字符时,输出为空。从设计上讲,这是正确的吗?是否需要添加条件以检查是否存在~字符?
发布于 2016-08-25 23:01:44
这就是人们所期望的行为。仅BuildRowsetFromString()函数在显示时不会返回任何值,您需要使用Row()和Field()来提取该值。
使用您的例子:
%%[
Var @testString, @testOutput
Set @testString = "Qwerty"
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
RowCount: %%=RowCount(@testOutput)=%%
TestOutput: %%=v(@testOutput)=%%RowCount()函数返回1的值,实质上表示它知道其中至少有一行。要显示该值,需要用Field()和Row()包装该值
TestOutput: %%=Field(Row(@testOutput,1),1)=%%如果要在字符串中显示其他值,比如传递“Qwerty~秒~第三次”,则需要在Row()函数中更改数字或执行循环。
参考资料
https://stackoverflow.com/questions/39153973
复制相似问题