【发布时间】:2012-11-29 20:45:13
【问题描述】:
我正在尝试将varchar 转换为bigint:
select convert(bigint, (select(Replace((select value from sometable), ' ', ''))))
为什么会报错???
将数据类型 varchar 转换为 bigint 时出错。
提前致谢
更新
这是我正在尝试的查询的一部分:
select top 1 *
into #tblTemp
from testTable
where Status = 0
order by Sno
declare @mobile varchar(50)
set @mobile = (select(Replace((select mobile from #tblTemp), ' ', '')))
--set @mobile = (select( Replace(' 9428017524', ' ', '')))
select convert(bigint, @mobile)
drop table #tblTemp
【问题讨论】:
-
你遇到了什么错误??
-
它实际上对我有用,我看不到明显的问题。这是您真正的查询还是您刚刚粘贴了您期望来自另一个查询或变量的值?
-
您确定数字前有空格而不是制表符之类的其他符号吗?要删除空格,您可以使用
ltrim和rtrim,顺便说一句 -
一个典型的错误是当你有一个
where子句“应该”在select子句中过滤掉所有非数字值和这样的转换。不幸的是,SQL Server 有时会在过滤步骤发生之前进行SELECT子句转换。
标签: sql sql-server type-conversion