【问题标题】:INSERT statement in SQL Server - is it correct?SQL Server 中的 INSERT 语句 - 是否正确?
【发布时间】:2013-01-30 13:17:06
【问题描述】:
insert into Employee_Document 
values(FristName, LastName, BeginWeek, EndWeek, 
       Hrs_Mon, hrs_tues, Hrs_Wed, Hrs_Thu, Hrs_Fri, Total_Hours,
       TaskDesc_Mon, TaskDesc_Tues, TaskDesc_Wed, TaskDesc_Thu, TaskDesc_Fri, '')

select 
   FristName, LastName, BeginWeek, EndWeek, 
   TotalHours where TimeSheetDate='31-12-2012' AS Hrs_Mon,'08:00:00',
   TotalHours where TimeSheetDate='02-01-2013' AS Hrs_Wed,
   TotalHours where TimeSheetDate='03-01-2013' AS Hrs_Thu,
   TotalHours where TimeSheetDate='04-01-2013' AS Hrs_Fri,
   TaskDescription where TimeSheetDate='31-12-2012' AS TaskDesc_Mon,
   TaskDescription where TimeSheetDate='02-01-2013' AS TaskDesc_Wed,
   TaskDescription where TimeSheetDate='03-01-2013' AS TaskDesc_Thu,
   TaskDescription where TimeSheetDate='04-01-2013' AS TaskDesc_Fri,'' 
from 
   vw_TSDailyTotalHoursTaskDesc)

由于我是 SQL Server 新手,此语句是否有任何错误。

提前致谢。

【问题讨论】:

  • 我不明白 2 件事,列列表末尾的 '' 是什么,第三行的 '08:00:00' 是什么?
  • 你至少应该说明这个查询的结果应该是什么。如果您不这样做,人们将无法帮助您...
  • 嗨,我想将一个表中的值插入到另一个列名不匹配的表中。我想使用'timesheetdate'列拆分它们,以便我可以将它们拆分到另一个表中的特定列。
  • 并且它有效?如果没有:是否有 错误(如果有:WHAT 错误)??
  • 我可以看到您想在“Total_Hours”中插入值并选择“TotalHours”,哪个是正确的?我建议您重新检查整个插入,比较字段并重试。

标签: sql sql-server


【解决方案1】:

(笑)

好的,首先需要删除关键字VALUES,基本插入语法是:

INSERT [INTO] tablename (column list...) VALUES (literals...)

INSERT [INTO] tablename (column list) SELECT...

由于上面是后者,所以完全删除 VALUES。

接下来,就是没有这样的名为''的列,不可能(如果真的不正常的话,极限可能是['']],把它整理出来。

最后,我猜你想用这个做什么

TotalHours where TimeSheetDate='31-12-2012' AS Hrs_Mon,'08:00:00',

大概是这样的

CASE WHEN TimeSheetDate='31-12-2012' THEN TotalHours ELSE '08:00:00' END AS Hrs_Mon,

还是什么??

【讨论】:

    【解决方案2】:

    据我所知,唯一不正确的是在第一行你有不需要的单词值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多