我被指派了一个exactttarget任务,它使用了Ampscript。试着边走边学。参见下面的代码片段:
%%[
Var @testString, @testOutput
Set @testString = Qwerty
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
TestOutput:%%= v(@testOutput) =%%
如果testString
中包含~
,则正常输出,如果字符串中不包含~
,则输出为空。这是设计正确的吗?我是否需要添加一个条件来检查~
字符的存在?
这是预期的行为。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~Second~Third",你需要在Row()函数中更改数字或执行循环。
引用
使用循环
BuildRowsetFromString()函数