簡體   English   中英

SELECT DISTINCT 不正確的名稱

[英]SELECT DISTINCT incorrect name

我有這樣的表:

ID 全名
1 喬查爾
2 鮑勃·馬夫
3 458
4 嗨789
5 凱特·米爾
6 33332263333226

我只想選擇不正確的名稱,如下所示:

ID 全名
3 458
4 嗨789
6 33332263333226

我是這么想的,這有多正確?

select * from table 
where full_name like '%1%' 
   or full_name like '%2%' 
   or full_name like '%3%' 
   or full_name like '%4%' 
   or full_name like '%5%' 
   or full_name like '%6%' 

您的正確名稱中有一個空格字符,因此不正確的名稱中沒有空格:

SELECT *
FROM   table
WHERE  full_name NOT LIKE '% %'

或者,可能是當他們有一個數字字符時:

SELECT *
FROM   table
WHERE  REGEXP_LIKE(full_name, '\d');

或者,沒有(慢)正則表達式:

SELECT *
FROM   table
WHERE  TRANSLATE(full_name, '0123456789', '----------' ) != full_name;

您的示例顯示“無效名稱”是包含數字的名稱。 如果是這樣,對於示例數據

SQL> select * from test;

        ID FULL_NAME
---------- --------------
         1 Joe Char
         2 Bob Maff
         3 458
         4 hi789
         5 Kate Mill
         6 33332263333226

6 rows selected.

您可能正在使用的查詢是

SQL> select *
  2  from test
  3  where regexp_instr(full_name, '\d') > 0;

        ID FULL_NAME
---------- --------------
         3 458
         4 hi789
         6 33332263333226

SQL>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM