【发布时间】:2012-10-09 16:33:27
【问题描述】:
我的一张表中有一个nvarchar 列。现在我需要将该列值转换为INT 类型..
我尝试过使用
cast(A.my_NvarcharColumn as INT)
和
convert (int, N'A.my_NvarcharColumn')
当我运行我的查询时,我收到了类似
的错误将 nvarchar 值“23454542”转换为 数据类型 int。
嗨,我正在发布我的整个代码 sn-p
SELECT A.objID, name, des, right(Replace(Ltrim(Replace(substring(my_nvarcharcolumn,1,9), '0', ' ')), ' ', '0'),10) AS new_nvarcharcolumn
INTO #tmp1
FROM [database].[dbo].[tblname] AS A
INNER JOIN (SELECT * FROM [database].[dbo].tblname1 WHERE sourceID = 32) AS AI ON source = A.objID
INNER JOIN [database].[dbo].tblname2 AS I ON I.ObjectID = A.Source
SELECT MAX(m_dAddDate) AS date_Asof, dnum INTO #tmp2 FROM
(SELECT * FROM [database].[dbo].tblname WHERE senior <> '' AND class = 'SSS') AS A
GROUP BY dnum
SELECT DISTINCT A.* INTO #tmp3 FROM #tmp1 AS A
INNER JOIN #tmp2 AS SD ON SD.dnum =cast(A.new_nvarcharcolumn as INT)
INNER JOIN database.[dbo].tbl4 AS M ON M.dnum = cast(A.new_nvarcharcolumn as INT) AND SD.date_Asof = M.adddate
【问题讨论】:
-
Cast 对我来说效果很好,你能发布完整的代码 sn-p,可能是因为其他原因导致的错误
-
嗨,marc_s,不,它不工作,它说错误将数据类型 nvarchar 转换为 bigint
标签: sql-server sqldatatypes type-conversion