SQL - 选择不符合正确格式的所有内容

时间:2014-05-30 12:55:57

标签: mysql sql select

我想从表格中选择包含错误社会安全号码的每一行。在这个简单的例子中,社会安全号码必须正好是4个数字,使用数字0-9。该表看起来像这样:

|SSN |Name  |Favorite Food|
|1345|Mark  |Meatballs    |
|1458|Connor|Tacos        |
|12  |Lisa  |Pizza        |
|1487|Clark |Tomato Soup  |
|XQXQ|Hans  |Sallad       |

我想选择没有正确SSN的人的姓名。该查询应该导致 Lisa ,因为她的SSN中只有 2 数字,而 Hans 中写有无效字符。感谢您阅读本文,请找一个好的。

我不知道这有多重要,但我提供了正确的信息,我使用的是MySQL,而SSN的类型是" char"。

3 个答案:

答案 0 :(得分:1)

不确定您正在使用哪个数据库,但使用LIKE语句...

select *
from Table
Where SSN not Like '[0-9][0-9][0-9][0-9]'

检查数据库帮助以获取确切的语法

答案 1 :(得分:0)

您可以使用Length函数来获取char。计数..

select *
from Table
Where LENGTH(SSN)<>4

对于ms-sql使用LEN

答案 2 :(得分:0)

您也可以使用:

SELECT *
FROM Table
WHERE SSN < 1000
OR SSN < 9999
OR UPPER(SSN) <> LOWER(SSN);