Teradata专栏中所有角色的出现

时间:2018-03-28 09:47:46

标签: teradata repeat

我有一个包含多个绑定在一起的列值的列。 它们中的每一个都使用“{”和“}”分隔。我需要分离这些值,并将它们作为单独的列放在一起,以便以后可以使用它们。

例如DataColumn:{Name = X} {Age = Y} {Gender = M} {Date = 180328}。它总是只有这4个值。

我需要的输出是4个不同的列(“名称”作为标题),它们的值在列标题下面。

1 个答案:

答案 0 :(得分:0)

您的数据看起来有点像JSON,那么它会非常简单。

尝试使用NVP(名称 - 值对):

Nvp('}'||data_col||'{', 'Name', '}{', '\ =\ ')
  • 必须添加领先'}'和一个尾随的'
  • name value 之间的分隔符必须包含空格:' ='
  • 名称区分大小写

如果您的数据不遵循这些规则,则可能需要切换到STRTOK或REGEXP_SUBSTR:

RegExp_Substr_gpl(data_col, '({name ?= ?)(.+?)}',1,1,'i', 2)

RegExp_Substr_gpl未记录,并添加捕获组参数。