如果列在sql中包含字母数字字符,如何将列设置为空白

时间:2017-03-20 09:54:08

标签: sql oracle oracle11g oracle10g

我必须从表中获取1列MSISDN。

结果如图所示,

enter image description here

在某些行中,每次返回时都会返回字符串,如nt&'gt; 1。

如果发生这种情况,我想将列设置为空白而不删除该行。

4 个答案:

答案 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&gt1;
         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