如何将 Nvarchar 列转换为 INT [英] How to convert Nvarchar column to INT
本文介绍了如何将 Nvarchar 列转换为 INT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的一张表中有一个 nvarchar
列.现在我需要将该列值转换为 INT
类型..
I have a nvarchar
column in one of my tables. Now I need to convert that column values to INT
type..
我试过使用
cast(A.my_NvarcharColumn as INT)
和
convert (int, N'A.my_NvarcharColumn')
当我运行查询时,我收到类似
When I ran my query I am getting errors like
将 nvarchar 值23454542"转换为转换失败数据类型 int.
我正在发布我的整个代码片段
hi i am posting my entire code snippet
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
推荐答案
CONVERT
取列名,而不是包含列名的字符串;您当前的表达式尝试将字符串 A.my_NvarcharColumn
转换为整数而不是列内容.
CONVERT
takes the column name, not a string containing the column name; your current expression tries to convert the string A.my_NvarcharColumn
to an integer instead of the column content.
SELECT convert (int, N'A.my_NvarcharColumn') FROM A;
应该是
SELECT convert (int, A.my_NvarcharColumn) FROM A;
简单的 SQLfiddle 这里.
Simple SQLfiddle here.
这篇关于如何将 Nvarchar 列转换为 INT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文