替换特定值的函数
Replace Function for specific values
我有一个 table 这样的:
- 文章
- 日期
- 状态
- 代码
"Status" 列中的值为“00”、“01”、'OB'
"Code" 列中的值如下:
- [05]+000569
- [1B] 5555
- 690KB
- -859
我只对 "Status" = '00' 的行感兴趣。
状态“00”仅显示 [05]+000569 这样的值。
这些值应使用以下函数进行修整:
select replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')
如何仅针对 "Status" = '00' 的行使用此函数构建 SELECT SQL?
我明白了。你想要一个 case
表达式:
select (case when status = '00' then replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')
end)
"Trim" 为 status = '00'
,不为其他状态:
SELECT CASE
WHEN status = '00' --> trim
THEN --> for
REPLACE (REGEXP_SUBSTR (Code, '(^|[+])[0-9]+'), '+', '') --> '00'
ELSE
code --> else, do nothing
END
AS code
FROM your_table
我有一个 table 这样的:
- 文章
- 日期
- 状态
- 代码
"Status" 列中的值为“00”、“01”、'OB' "Code" 列中的值如下:
- [05]+000569
- [1B] 5555
- 690KB
- -859
我只对 "Status" = '00' 的行感兴趣。 状态“00”仅显示 [05]+000569 这样的值。 这些值应使用以下函数进行修整:
select replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')
如何仅针对 "Status" = '00' 的行使用此函数构建 SELECT SQL?
我明白了。你想要一个 case
表达式:
select (case when status = '00' then replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')
end)
"Trim" 为 status = '00'
,不为其他状态:
SELECT CASE
WHEN status = '00' --> trim
THEN --> for
REPLACE (REGEXP_SUBSTR (Code, '(^|[+])[0-9]+'), '+', '') --> '00'
ELSE
code --> else, do nothing
END
AS code
FROM your_table