nvarchar转换为整数转换错误

时间:2018-05-22 15:47:07

标签: sql-server casting type-conversion nested-function

我正在尝试将一列邮政编码转换为整数,但即使我正确地投放了该列,也会出现转换错误:

with zips as (
select  id ,cast(replace(replace(left(ltrim(Zip_Code),5), '-', ''), char(32), '0') as int) as zip_clean
from table1)

select * from zips 
    where zip_clean in 
    (19116,
    94595,
    60062)

上面我的嵌套演员表功能有什么问题吗?

2 个答案:

答案 0 :(得分:1)

因为我认为这会回答你的问题,我会在这里发表评论。

这意味着您的@Query("SELECT u FROM OAuthUser u ...") public List<OAuthUser> findByRole(int roleID); 函数不能涵盖Zip_Code中的所有可能方案。尝试使用

@Query(value = "SELECT * FROM auth_user ..." , nativeQuery=true)
public List<OAuthUser> findByRole(int roleID);

答案 1 :(得分:1)

我认为你的查询是正确的,但没有考虑到一些无效的zip。我会尝试运行下面的,它将返回非数字值。然后你可能需要手动修复它们或以其他方式处理它们。

 SELECT Zip_Code FROM TABLE1
    WHERE ISNUMERIC(replace(replace(left(ltrim(Zip_Code),5), '-', ''), char(32), 
    '0')) = 0