Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:查询联合所有转换类型失败_Sql Server - Fatal编程技术网

Sql server SQL Server:查询联合所有转换类型失败

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

我尝试运行一个查询,使用union all从两个表中提取数据,并继续获得以下结果:

Msg 245,16级,状态1,第29行 将nvarchar值“ie9”转换为数据类型int时,转换失败

我不知道为什么任何东西试图转换它应该能够显示它的表数据

以下是我的SQL:

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