處理我有表空間在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
處理我有表空間在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
使用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)
謝謝dnoeth,我會用它來處理其他類似的查詢。 – madsthiru
非常感謝你的回覆。是的,但不幸的是,這不是正確的記錄。我剛剛從隊友那裏詢問,除了我提到的那個之外,這一排還有其他的價值。對不起。我編輯了我的問題。修剪命令現在不起作用:( – madsthiru
現在編輯,希望SUBSTRING,而不是SUBSTR的作品 – jarlh
輝煌!!非常感謝。它的作品像一個魅力 – madsthiru