【问题标题】:Error converting data type varchar to bigint using union使用 union 将数据类型 varchar 转换为 bigint 时出错
【发布时间】:2012-03-16 03:14:09
【问题描述】:

查询:

SELECT TOP (1) '-1' AS hrempid, 'All employees' AS fullname
FROM employee
UNION
SELECT fullname, hrempid
FROM employee AS employee1 
order by fullname

错误: 将数据类型 varchar 转换为 bigint 时出错。

【问题讨论】:

    标签: sql


    【解决方案1】:

    union 之后的列顺序错误。这是修正版:

    SELECT   TOP (1) '-1' AS hrempid, 'All employees' AS fullname
    FROM     employee
    UNION
    SELECT   hrempid, fullname
    FROM     employee AS employee1 
    ORDER BY fullname
    

    更好的是,使用这样的东西:

    SELECT   CAST(-1 AS BIGINT) AS hrempid, 'All employees' AS fullname
    UNION ALL
    SELECT   hrempid, fullname
    FROM     employee AS employee1 
    ORDER BY fullname
    

    【讨论】:

      【解决方案2】:

      ' 留在您的hrempid 周围并切换列。试试这个:

      SELECT TOP (1) 'All employees' AS fullname, -1 AS hrempid
      FROM employee
      UNION
      SELECT fullname, hrempid
      FROM employee AS employee1 
      order by fullname
      

      【讨论】:

        猜你喜欢
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-07
        相关资源
        最近更新 更多