2016-09-16 56 views
0

處理我有表空間在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 

回答

0

使用TRIM刪除前導空格(和尾...):

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

回答數2,編輯的問題,ANSI SQL兼容:

SELECT SUBSTRING(TRIM(SUBSTRING(Record_Value FROM 3)) FROM 1 FOR 2) 
子串之前
+0

非常感謝你的回覆。是的,但不幸的是,這不是正確的記錄。我剛剛從隊友那裏詢問,除了我提到的那個之外,這一排還有其他的價值。對不起。我編輯了我的問題。修剪命令現在不起作用:( – madsthiru

+0

現在編輯,希望SUBSTRING,而不是SUBSTR的作品 – jarlh

+0

輝煌!!非常感謝。它的作品像一個魅力 – madsthiru

1

一種不同的解決方案簡單地移除所有位:

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

謝謝dnoeth,我會用它來處理其他類似的查詢。 – madsthiru