SQL:select中的简单自定义列不起作用?

SQL:select中的简单自定义列不起作用?,sql,sql-server,sql-server-2008,tsql,laravel,Sql,Sql Server,Sql Server 2008,Tsql,Laravel,如果在select中添加自定义列,则会出现以下错误: 20018无效的列名“2” 下面是一个查询示例 SELECT [msg].[MessageTo], [msg].[MessageFrom], [msg].[SendTime], [msg].[ReceiveTime], [msg].[id], '2' AS source, [kat].[id] AS [CategoriId], [kat].[naziv] AS [Categori

如果在select中添加自定义列,则会出现以下错误:

20018无效的列名“2”

下面是一个查询示例

SELECT
    [msg].[MessageTo],
    [msg].[MessageFrom],
    [msg].[SendTime],
    [msg].[ReceiveTime],
    [msg].[id],
    '2' AS source,
    [kat].[id] AS [CategoriId],
    [kat].[naziv] AS [CategoriName]
FROM
    [SMSServer_1].[dbo].[MessageIn] AS [msg]
LEFT JOIN [Tekijanka].[dbo].[crm_poruka] AS [por] ON [por].[fk_poruka] = [msg].[id]
AND [por].[fk_source] = [2]
LEFT JOIN [Tekijanka].[dbo].[crm_kategorije_poruka] AS [kat] ON [kat].[id] = [por].[fk_kategorija]
WHERE
    msg.id NOT IN (
        SELECT
            fk_poruka
        FROM
            Tekijanka.dbo.crm_poruka
        WHERE
            fk_status <> 1
    )
ORDER BY
    [SendTime] DESC
有没有办法解决这个问题?

问题出在左连接,而不是选择部分:


此条件尝试联接fk_源和名为[2]的列。当然,MessageIn和crm_poruka表中没有这样的列。您必须更改代码的这部分以删除条件或将其更改为和[por].[fk_source]=2.

和[por].[fk_source]=[2]?任何表中都没有列名称[2]。可能您需要并且[por].[fk_source]=2 2是一个整数值,[2]是标识,por,fk_source=2。por是表crm\u poruka…我需要它在连接条件中删除方括号。没有名为[2]的列。我使用laravel eloquent,它会自动添加方括号,我强制它不添加,现在它工作了……非常感谢,您帮助了我:
AND [por].[fk_source] = [2]