我有一个带有 varchar 列的表,我想找到与某个数字匹配的值。因此,假设该列包含以下条目(现实生活中的数百万行除外):
123456789012
2345678
3456
23 45
713?2
00123456789012
所以我决定我希望所有数字为 123456789012 的行写一个看起来像这样的语句:
SELECT * FROM MyTable WHERE CAST(MyColumn as bigint) = 123456789012
它应该返回第一行和最后一行,但整个查询却失败了,因为它无法将“23 45”和“713?2”转换为 bigint。
是否有另一种方法可以进行转换,为无法转换的值返回 NULL?