繁体   English   中英

SQL Server无效的列名称和字符串值

[英]SQL Server Invalid Column Name and String Value

我有一个来自SQL Server存储过程的以下代码片段。

    DECLARE @sql nvarchar(Max)

    SET @sql = N'

    WITH CTE AS
    (
      SELECT * FROM #TEMP WHERE ...
    ),

    Track AS
    (
      SELECT *,
              CASE WHEN 1B1 = "Track" AND (QTRK_1B1 = "2D QT" OR QTRK_1B1 = "3D QT") THEN "Yes" ELSE "No" END AS Tracking
      FROM CTE
    ),
    ... '

Exec sp_executesql @sql, N'@AirTarget nvarchar(25), @GroundTracker nvarchar(25)', @AirTarget, @GroundTracker

我不确定我在做什么错。 执行存储过程时,出现如下错误:

无效的列名“ Track”

无效的列名“ 2D QT”

无效的列名“ 3D QT”

无效的列名“是”

无效的列名“否”

但是这些不是表中的列名。 我已经用Google搜索,无法弄清楚我在做什么错。

我尝试用单引号将这些值引起来,并且尝试将这些值周围的引号删除,但没有任何效果。 任何帮助,将不胜感激

SQL对字符串使用单引号'

CASE 
    WHEN 1B1 = ''Track'' AND (QTRK_1B1 = ''2D QT'' OR QTRK_1B1 = ''3D QT'') THEN ''Yes'' 
    ELSE ''No'' 
END AS Tracking

它们绝对应该是单引号-在所有带有双引号的地方。 如果这样做,至少应该给您不同的信息。

您还需要将1B1用方括号括起来,例如[1B1]因为它不喜欢CASE语句中以数字开头的列名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM