2013-02-20 126 views
2

我有我的表中的两列,一个包含数字,而其它的从这些数字等产生一些字符串:比较int和VARCHAR列在SQL

ID  Serial 
1  SN00001 
2  SN00002 
127 SN00127 

但是我不能肯定,如果每个序列号都是正确的。所以我要寻找任何可能出现的错误的东西,如:

SELECT * FROM MyTable WHERE ID <> Serial 

当然我不能只写ID <> Serial,我想我应该用一些子选择,型铸造等,但它是我的全部新我可以使用一些帮助。提前致谢!

+0

哪些DBMS您使用的?甲骨文? Postgres的? – 2013-02-20 13:00:32

回答

1
SELECT * 
from MyTable 
WHERE ID <> CAST(REPLACE(Serial, 'SN','') AS INT) 
6

尝试:

SELECT * from MyTable WHERE ID <> RIGHT(Serial, LEN(ID))