【问题标题】:Compare int and varchar column in SQL比较 SQL 中的 int 和 varchar 列
【发布时间】:2013-02-20 12:09:20
【问题描述】:

我的表中有两列,一列包含数字,另一列应该有一些从这些数字生成的字符串,例如:

ID     Serial
1      SN00001
2      SN00002
127    SN00127

但是我不能确定每个序列号是否正确。所以我想通过以下方式搜索任何可能的错误:

SELECT * FROM MyTable WHERE ID <> Serial

当然我不能只写ID &lt;&gt; Serial,我想我应该使用一些子字符串选择、类型转换等等,但这对我来说是全新的,我可以使用一些帮助。提前致谢!

【问题讨论】:

  • 您使用的是哪个 DBMS?甲骨文? Postgres?

标签: sql sql-server database compare


【解决方案1】:

试试:

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

【讨论】:

    【解决方案2】:
    SELECT * 
    from   MyTable 
    WHERE  ID <> CAST(REPLACE(Serial, 'SN','') AS INT)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多