有没有办法在SQL中编辑子字符串?

时间:2019-10-01 20:16:19

标签: sql substring teradata trim teradata-sql-assistant

例如,假设我有一个选择查询:

    SEL SUBSTRING(TXT,5,10) FROM RANDOM_DB.BDAYINFO

这将返回

    01DEC99/M/ 

还有

    01DEC9999/

以这两种格式返回的数据

我想做的是在第一个结尾处和/在最后一个结尾处除去/ M /。现在,我专注于摆脱/ M/。

到目前为止,我尝试过的是:

    SEL SUBSTRING(TXT,5,10) CASE WHEN SUBSTRING(TXT,5,10) IS LIKE '%/M/' THEN SEL SUBSTRING(TXT,5,7) FROM RANDOM_DB.BDAYINFO

这就是说子字符串以'/ M /'结尾,在这种情况下,代表男性。

我也尝试过使用TRIM,如下所示:

   SELECT TRIM('/M/' FROM SUBSTRING(TXT,5,10)) FROM RANDOM_DB.BDAYINFO

2 个答案:

答案 0 :(得分:0)

使用此CASE语句:

SELECT 
  CASE 
    WHEN SUBSTRING(TXT,5,10) LIKE '%/M/' THEN SUBSTRING(TXT,5,7) 
    WHEN SUBSTRING(TXT,5,10) LIKE '%/' THEN SUBSTRING(TXT,5,9) 
    ELSE SUBSTRING(TXT,5,10)
  END
FROM RANDOM_DB.BDAYINFO

答案 1 :(得分:0)

尝试此方法-使用LEFT(Samplevalue,CHARINDEX('/',Samplevalue +'/')-1)

FlatFileDestination1