Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在列中查找带有英文字符的名称?_Sql_Oracle - Fatal编程技术网

Sql 如何在列中查找带有英文字符的名称?

Sql 如何在列中查找带有英文字符的名称?,sql,oracle,Sql,Oracle,我将解释发生了什么: 我有一个带有列的城市表: 身份证 NAME_UA-乌克兰名称 NAME_RU-俄语名称 名称\u EN-英文名称 我有一个问题,在像敖德萨这样的一些城市,NAME\u RU=Odesa当它必须是NAME\u RU=öаСа时。 所以要解决这个问题,我首先需要找到所有的拉丁语,英语。。。名言 我有一个解决方案,但现在不起作用: SELECT * FROM CITY "c" WHERE REGEXP_LIKE("c".NAME_RU,'[^A-Za-z0-9]') ; 有什么

我将解释发生了什么: 我有一个带有列的城市表:

  • 身份证
  • NAME_UA-乌克兰名称
  • NAME_RU-俄语名称
  • 名称\u EN-英文名称
  • 我有一个问题,在像敖德萨这样的一些城市,NAME\u RU=Odesa当它必须是NAME\u RU=öаСа时。 所以要解决这个问题,我首先需要找到所有的拉丁语,英语。。。名言 我有一个解决方案,但现在不起作用:

    SELECT * FROM CITY "c"
    WHERE REGEXP_LIKE("c".NAME_RU,'[^A-Za-z0-9]') ;
    

    有什么解决办法吗?

    您的正则表达式要求查找1个不是字母或数字的字符。插入符号正在否定它

    因此,如果要查找所有只包含英文字母和数字的
    NAME_RU
    ,可以使用以下正则表达式:

    ^[A-Za-z0-9]+$

    ^
    表示这是字符串的起点

    [A-Za-z0-9]
    定义允许的字符(但仅匹配单个字符)

    +
    表示尽可能多地匹配允许的字符(从1开始-表示空字符串不匹配。如果您也想匹配空字符串,可以使用
    *
    而不是
    +


    $
    表示这是字符串的结束点。因此,字符串中只存在允许的字符。

    您的正则表达式要求查找1个不是字母或数字的字符。插入符号将其取反

    因此,如果要查找所有只包含英文字母和数字的
    NAME_RU
    ,可以使用以下正则表达式:

    ^[A-Za-z0-9]+$

    ^
    表示这是字符串的起点

    [A-Za-z0-9]
    定义允许的字符(但仅匹配单个字符)

    +
    表示尽可能多地匹配允许的字符(从1开始-表示空字符串不匹配。如果您也想匹配空字符串,可以使用
    *
    而不是
    +


    $
    表示这是字符串的结束点。因此,字符串中只存在允许的字符。

    不确定您在此处尝试执行什么操作,或者您在查找哪些结果。请参阅不确定您在此处尝试执行什么操作,或者您在查找哪些结果。请参阅@GermanVaranytsya…这就是问题所要求的。这是一个dbfiddle:.@GermanVaranytsya…这就是问题的答案。这是一个dbfiddle:。