【问题标题】:How to combine/insert multiple column into one column in SQL Server如何在 SQL Server 中将多列组合/插入到一列中
【发布时间】:2017-07-20 03:26:59
【问题描述】:

我在这里有一个关于 SQL 的问题,我已经搜索了一些关于“如何将列合并为一列”的站点,并且已经尝试了帮助程序的每个提示,但是这样做时出现错误,错误表明

消息 4104,第 16 级,状态 1,第 12 行
无法绑定多部分标识符“LOT_LOC_BOND.LOT_ID”。

消息 4104,第 16 级,状态 1,第 12 行
无法绑定多部分标识符“LOC_LOT_IEBT.LOT_ID”。

消息 4104,第 16 级,状态 1,第 12 行
无法绑定多部分标识符“LOT_LOC_MBT.LOT_ID”。

消息 4104,第 16 级,状态 1,第 12 行
无法绑定多部分标识符“LOT_LOC_SEAL.LOT_ID”。

这是 SQL 语句,仅供参考,我使用的是 SQL Server 2014:

USE IMS_Location

SELECT TOP(1000)  
    LOT_LOC_BOND.LOT_ID, LOT_LOC_BOND.CheckIn AS BOND_CheckIn, 
    LOT_LOC_BOND.CheckOut As BOND_CheckOut, 
    LOT_LOC_BOND.StatusDesc AS BOND_Status,
    LOT_LOC_IEBT.LOT_ID, LOT_LOC_IEBT.CheckIn AS IEBT_CheckIn,
    LOT_LOC_IEBT.CheckOut AS IEBT_CheckOut, LOT_LOC_IEBT.StatusDesc AS IEBT_Status,
    LOT_LOC_MBT.LOT_ID, LOT_LOC_MBT.CheckIn AS MBT_CheckIn,
    LOT_LOC_MBT.CheckOut AS MBT_CheckOut,
    LOT_LOC_MBT.StatusDesc AS MBT_Status,
    LOT_LOC_SEAL.LOT_ID, LOT_LOC_SEAL.CheckIn AS SEAL_CheckIn,
    LOT_LOC_SEAL.CheckOut AS SEAL_CheckOut,
    LOT_LOC_SEAL.StatusDesc AS SEAL_Status
FROM 
    LOT_LOC_BOND 
LEFT JOIN 
    LOT_LOC_IEBT ON  LOT_LOC_BOND.LOT_ID = LOT_LOC_IEBT.LOT_ID, LOT_LOC_MBT 
LEFT JOIN 
    LOT_LOC_SEAL ON LOT_LOC_MBT.LOT_ID = LOT_LOC_SEAL.LOT_ID

SELECT 
    (LOT_LOC_BOND.LOT_ID + LOC_LOT_IEBT.LOT_ID +
     LOT_LOC_MBT.LOT_ID + LOT_LOC_SEAL.LOT_ID) AS LOT_ID
ORDER BY 
    LOT_ID

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    也许你想要做的是这样的;因为您可能希望合并多列的结果。

    您收到错误消息,因为您的 SELECT 语法错误,因为没有 FROM 可供选择。

    USE IMS_Location
    
    SELECT TOP(1000) 
        (LOT_LOC_BOND.LOT_ID + LOT_LOC_IEBT.LOT_ID +
         LOT_LOC_MBT.LOT_ID + LOT_LOC_SEAL.LOT_ID) AS LOT_ID,
        LOT_LOC_BOND.LOT_ID, LOT_LOC_BOND.CheckIn AS BOND_CheckIn, 
        LOT_LOC_BOND.CheckOut As BOND_CheckOut, 
        LOT_LOC_BOND.StatusDesc AS BOND_Status,
        LOT_LOC_IEBT.LOT_ID, LOT_LOC_IEBT.CheckIn AS IEBT_CheckIn,
        LOT_LOC_IEBT.CheckOut AS IEBT_CheckOut, LOT_LOC_IEBT.StatusDesc AS IEBT_Status,
        LOT_LOC_MBT.LOT_ID, LOT_LOC_MBT.CheckIn AS MBT_CheckIn,
        LOT_LOC_MBT.CheckOut AS MBT_CheckOut,
        LOT_LOC_MBT.StatusDesc AS MBT_Status,
        LOT_LOC_SEAL.LOT_ID, LOT_LOC_SEAL.CheckIn AS SEAL_CheckIn,
        LOT_LOC_SEAL.CheckOut AS SEAL_CheckOut,
        LOT_LOC_SEAL.StatusDesc AS SEAL_Status
    FROM 
        LOT_LOC_BOND 
    LEFT JOIN 
        LOT_LOC_IEBT ON  LOT_LOC_BOND.LOT_ID = LOT_LOC_IEBT.LOT_ID, LOT_LOC_MBT 
    LEFT JOIN 
        LOT_LOC_SEAL ON LOT_LOC_MBT.LOT_ID = LOT_LOC_SEAL.LOT_ID
    ORDER BY 
        LOT_ID
    

    【讨论】:

    • 我仍然无法执行它,错误表明“LOT_LOC_BOND”附近的语法不正确。然后我尝试在 AS LOT_ID 之后放置“,”,然后出现另一个错误 Msg 4104, Level 16, State 1, Line 3 无法绑定多部分标识符“LOC_LOT_IEBT.LOT_ID”。消息 209,级别 16,状态 1,行 3 不明确的列名称“LOT_ID”。消息 209,级别 16,状态 1,行 3 不明确的列名称“LOT_ID”。消息 209,级别 16,状态 1,行 3 不明确的列名称“LOT_ID”。消息 209,级别 16,状态 1,第 3 行不明确的列名称“LOT_ID”。
    • 您认为我可以合并 LOT_ID 并同时加入另一列吗?
    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多