sql - SQL Server 无效的列名和字符串值
问题描述
我有来自 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
我不确定我在这里做错了什么。当我执行存储过程时,我收到如下错误:
列名“跟踪”无效
列名“2D QT”无效
列名“3D QT”无效
无效的列名“是”
无效的列名“否”
但这些不是表中的列名。我用谷歌搜索,无法弄清楚我做错了什么。
我尝试用单引号将这些值括起来,并尝试从这些值周围删除引号,但没有任何效果。任何帮助,将不胜感激
解决方案
SQL'
对字符串使用单引号
CASE
WHEN 1B1 = ''Track'' AND (QTRK_1B1 = ''2D QT'' OR QTRK_1B1 = ''3D QT'') THEN ''Yes''
ELSE ''No''
END AS Tracking
推荐阅读
- javascript - 如何正确链接外部 JS 文件?
- yugabyte-db - 在 YugabyteDB 的只读副本集群中创建表
- powerbi - 在 PowerBI 桌面中看不到数据选项
- javascript - preview.js 中的 Storybook SyntaxError
- angular - Angular 12 / Typescript 问题,类型从不
- fortran - 读/写时避免 Fortran FORMAT 中的 GOTO 范例
- kubernetes - 如何在 Skaffold 配置中设置构建输出平台 x86_64?
- vba - 接受 IBM 网站上的 SeleniumBasic cookie
- java - 如何将java中的长值设置为2 ^ 64-1?
- r - 闪亮的 DownloadHandler 在服务器上不起作用