我必须从表中获取1列MSISDN。
结果如图所示,
在某些行中,每次返回时都会返回字符串,如nt&'gt; 1。
如果发生这种情况,我想将列设置为空白而不删除该行。
答案 0 :(得分:1)
您可以使用SQL
中的CASE语句解决此问题SELECT CASE WHEN MSISDN = 'nt>1' THEN '' ELSE MSISDN END AS MSISDN
答案 1 :(得分:1)
您可以比较字符串,也可以使用LIKE
运算符。一些选项是:
SELECT CASE
WHEN MSISDN = 'nt>1' THEN NULL -- match nt>1;
WHEN MSISDN LIKE '%>%' THEN NULL -- match > anywhere in the string
WHEN LOWER( MSISDN ) LIKE '%<%' THEN NULL -- match < ignoring case
WHEN MSISDN LIKE '%&%;%' THEN NULL -- match & followed later by ;
ELSE MSISDN
END AS parsed_msisdn
FROM your_table
答案 2 :(得分:0)
select case
when REGEXP_LIKE(MSISDN, '[A-Za-z]') then null
else MSISDN
end as MSISDN
from MyTable
答案 3 :(得分:0)
使用REPLACE字符串函数替换您的特定字符串:
SELECT REPLACE(Your_columnName,'nt&''gt;1','')
FROM Your_table