Sql server SQL Server:查询联合所有转换类型失败
我尝试运行一个查询,使用union all从两个表中提取数据,并继续获得以下结果: Msg 245,16级,状态1,第29行 将nvarchar值“ie9”转换为数据类型int时,转换失败 我不知道为什么任何东西试图转换它应该能够显示它的表数据 以下是我的SQL:Sql server SQL Server:查询联合所有转换类型失败,sql-server,Sql Server,我尝试运行一个查询,使用union all从两个表中提取数据,并继续获得以下结果: Msg 245,16级,状态1,第29行 将nvarchar值“ie9”转换为数据类型int时,转换失败 我不知道为什么任何东西试图转换它应该能够显示它的表数据 以下是我的SQL: SELECT CustomerNumber, Event FROM CustomerPortal.dbo.WebLog WHERE (Event = 'exception') AND (Crea
SELECT
CustomerNumber, Event
FROM
CustomerPortal.dbo.WebLog
WHERE
(Event = 'exception')
AND (CreateDate >= '04/03/2015') AND (CreateDate <= '04/06/2015')
UNION ALL
SELECT distinct
BrowserId, BrowserName
FROM
CustomerPortal.dbo.BrowserInfoLog;
您可以将CustomerNumber转换为nvarchar,使其与您的浏览器ID匹配,如下所示:
SELECT CAST(CustomerNumber AS NVARCHAR(128)) AS CustomerNumber ,
Event
FROM CustomerPortal.dbo.WebLog
WHERE ( Event = 'exception' )
AND ( CreateDate >= '04/03/2015' )
AND ( CreateDate <= '04/06/2015' )
UNION ALL
SELECT DISTINCT
BrowserId ,
BrowserName
FROM CustomerPortal.dbo.BrowserInfoLog;
您使用的是联合,因此列应该来自兼容的数据类型,CustomerNumber和BrowserID是什么数据类型?Customer是int,BrowserID是nvarchar128。在这个阶段,我不能真正改变这些类型,但我基本上是试图在事件类型和浏览器名称旁边显示异常和客户编号…那么,你还不确定为什么要尝试转换它吗?一个是INT,另一个是NVARCHARI,我明白这一点,所以我现在的问题是。。。如何显示数据?或者有没有办法。是的,你需要先把int转换成nvarchar