【发布时间】:2020-01-25 21:29:15
【问题描述】:
我有一个现有的数据库,其中包含一个我们可以称为“PACKAGES”的列,其中的值连接成一个字符串,每一行还包含一个相应的“ACCOUNT_ID”值。
Row 1: ACCOUNT_ID = 123, PACKAGES = 'AAA BBB CCC '
Row 2: ACCOUNT_ID = 456, PACKAGES = ' DDD DDD AAA BBB CCC CCC EEE'
Row 3: ACCOUNT_ID = 789, PACKAGES = 'FFF ZZZ QQQ QQQ'
我需要生成代码,让我为每个帐户分隔 packages 字段,以便 1) 代码识别 SPACE 何时引导字符,如第 2 行中的字符,以及 2) 仅显示各个帐户的不同包,即使ACCOUNT_ID 字段在生成的答案集中没有区别。
ACCOUNT_ID | PACKAGES
123 | AAA
123 | BBB
123 | CCC
456 | DDD
456 | AAA
456 | BBB
456 | CCC
456 | EEE
789 | FFF
789 | ZZZ
789 | QQQ
我尝试在下面网上找到的一些示例代码中使用REGEXP,但我不知道在哪里可以从我正在使用的数据库中输入表名,也不知道是否可以替换我的“PACKAGES”字段以及下面的任何代码来获得我需要的东西。
SELECT * FROM TABLE (
REGEXP_SPLIT_TO_TABLE ('SMART PHONES','MOTOROLA&MICROSOFT&GOOGLE&APPLE','&','C')
RETURNS (OUTKEY VARCHAR(10), TOKEN_NDX INTEGER, TOKEN VARCHAR(10))
) AS T1;
【问题讨论】:
标签: sql teradata teradata-sql-assistant