【问题标题】:Error: Incorrect Syntax Near '/'错误:“/”附近的语法不正确
【发布时间】:2015-01-02 06:30:49
【问题描述】:

我在执行下面的查询时遇到了/ 的问题。我尝试删除/,然后它给了我另一个错误“靠近“”的语法不正确。我对我的查询发生了什么感到困惑。提前致谢

INSERT INTO Workers (TransManual, TransType, EmpNo, EmpName, TransDate, ScanIn, ScanOut, Basic, Overtime, Total, Remarks, Ocassion, Reason, Adjustment)
   SELECT 
      0 AS TransManual,
      1 AS TransType,
      EmpNo,
      EmpName,
      CONVERT(DATETIME, CONVERT(CHAR(10), GETDATE(), 103), 103) AS TransDate,
      ''N/A'' AS ScanIn,
      ''N/A'' AS ScanOut,
      8 AS Basic,
      0 AS Overtime,
      8 AS Total,
      '''' AS Remarks,
      '''' AS Ocassion,
      '''' AS Reason,
      '''' AS Adjustment
   FROM Employees
   WHERE PayType = 1 
     AND Leave = 0

【问题讨论】:

  • 你的意思不是'N/A',而不是''N/A''。如果您不想插入任何内容,那么最好使用空字符串或null
  • 您是否还需要在字段中存储引号?
  • 这是从动态 SQL 语句中复制的吗?看起来您需要全局搜索并将 '' 替换为 '

标签: sql sql-agent-job


【解决方案1】:

N/A 的每一侧不需要 2 个单引号 - 1 个即可。 ''N/A'' 应该是 'N/A'。你的空单引号也应该是''。您在单引号内有 2 个单引号的唯一原因是您希望将单引号放入数据库记录中。

【讨论】:

    【解决方案2】:

    我认为你在这里出错了

    ''N/A'' AS ScanIn,
     ''N/A'' AS ScanOut,
    

    如果你想插入N/A 那么你应该写成

    'N/A' AS ScanIn,
    'N/A' AS ScanOut,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多