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

Is there a way to edit a substring in SQL?

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

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

和这个 returns 之类的

    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

使用这个 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

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

DECLARE @Samples TABLE (Samplevalue VARCHAR(30));
INSERT INTO @Samples VALUES ('01DEC99/M/ '),('01DEC9999/');
SELECT LEFT(Samplevalue,CHARINDEX('/',Samplevalue + '/')-1) AS EXPECTED_RESULT FROM @Samples;