我已经完成了使用Ampscript的ExactTarget任务。在这里尝试学习。请参阅下面的代码段:
%%[
Var @testString, @testOutput
Set @testString = Qwerty
Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%
TestOutput:%%= v(@testOutput) =%%
如果testString
包含~
,则代码有效,但如果字符串中没有~
字符,则输出为空。这是正确的设计吗?我是否需要添加条件来检查是否存在~
字符?
答案 0 :(得分:2)
这是预期的行为。单独的 BuildRowsetFromString()功能在显示时不会返回任何值,您需要使用行()和字段()以便拉出值。
使用您的示例:
%%[
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",你需要更改行()的数字功能或执行循环。
<强>参考强>