1

我的任务是使用 Ampscript 执行 ExactTarget 任务。试着在这里学习。请参阅下面的代码片段:

%%[
    Var @testString, @testOutput
    Set @testString = Qwerty
    Set @testOutput = BuildRowsetFromString(@testString,"~")
]%%

TestOutput:%%= v(@testOutput) =%%

如果testString包含 a ~,则代码有效,但是当字符串中没有~字符时,输出为空白。这是设计正确的吗?我是否需要添加条件来检查~角色的存在?

4

1 回答 1

2

这是预期的行为。单独的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() 函数

于 2016-08-25T23:01:44.627 回答