Teradata的空间处理

时间:2016-09-16 07:07:14

标签: sql teradata

表格中有以下行

Record_Value
E1X4B1  20160822
E1XBA1  20160822
E1    X920160822

我需要选择值X4,XB和X9。我写了这个问题:

SELECT SUBSTR(Record_Value,3,2)

它仅选择X4和XB。要选择值X9(位于第7位),我想到使用coalesce函数,但它只处理NULL值而不处理BLANK值。你能指导我吗?预期产出将是

X4
XB
X9

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

答案编号2,编辑问题,符合ANSI SQL:

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