Space 在 Teradata 中处理

Space handling in Teradata

我在 table

中有以下行
Record_Value
E1X4B1  20160822
E1XBA1  20160822
E1    X920160822

我需要 select X4、XB 和 X9 的值。我写了查询:

SELECT SUBSTR(Record_Value,3,2)

它 select 只有 X4 和 XB。对于 select 值 X9(位于第 7 个位置),我考虑过使用 coalesce 函数,但它只处理 NULL 值而不处理 BLANK 值。你能指导我吗?预期输出为

X4
XB
X9

使用TRIM删除前导空格(和尾随...):

SELECT SUBSTR(TRIM(Record_Value),1,2)

第 2 个答案,已编辑的问题,符合 ANSI SQL:

SELECT SUBSTRING(TRIM(SUBSTRING(Record_Value FROM 3)) FROM 1 FOR 2)

另一种解决方案只是删除子字符串前的 所有 个空格:

SUBSTRING(OTRANSLATE(Record_value,' ','') FROM 3 FOR 2)