繁体   English   中英

SQL SELECT,CASE和INTO语句之间

[英]SQL SELECT, CASE, BETWEEN INTO statements

我有一个SQL查询,该查询比较2个表以检查是否已关闭登录时间和计划以使用int值填充第3个表。 我可以正常使用,但是我正在尝试向select命令添加其他变体。

这是有效的代码:

DECLARE @sqlSelect varchar(max)
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 else 1 end as LoginInc into Integers FROM loginlogout JOIN Schedules$ on loginlogout.[Agent Name] = Schedules$.AgentName'

EXEC(@sqlSelect)
GO

我想补充的是:

DECLARE @six varchar(max)
DECLARE @sixo varchar(max)
DECLARE @sixnerdy varchar(max) 
DECLARE @sqlSelect varchar(max)
SET @six = '[6:00AM]'
SET @sixo = '[6:05AM]'
SET @sixnerdy = '[6:30AM]' 
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 when [Login Time] BETWEEN '+ @sixo +' and '+ @sixnerdy +' then 1 else 1 end as LoginInc into Integers FROM loginlogout JOIN Schedules$ on loginlogout.[Agent Name] = Schedules$.AgentName'

EXEC(@sqlSelect)
GO 

运行此查询时,出现错误msg 207无效的列名。 因此,我尝试:

SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 when [Login Time] BETWEEN '+ @sixo +' and '+ @sixnerdy +' then 1 else 1 end as LoginInc into Integers'

删除FROM语句。 这表示命令会运行,但是不会创建Integers表。 可以在1个SQL命令中完成吗? 另外,我还需要添加大约4个以上的BETWEEN查询以添加到该命令。

乍一看会怀疑没有问题,因为时间没有用单引号引起来。 这样的事情行吗?

DECLARE @six varchar(max)
DECLARE @sixo varchar(max)
DECLARE @sixnerdy varchar(max) 
DECLARE @sqlSelect varchar(max)
SET @six = '''6:00AM'''
SET @sixo = '''6:05AM'''
SET @sixnerdy = '''6:30AM''' 
SET @sqlSelect = 'SELECT loginlogout.[Agent Name], case when loginlogout.[Login Time] = Schedules$.StartTime then 0 when [Login Time] BETWEEN '+ @sixo +' and '+ @sixnerdy +' then 1 else 1 end as LoginInc into Integers FROM loginlogout JOIN Schedules$ on loginlogout.[Agent Name] = Schedules$.AgentName'

EXEC(@sqlSelect)
GO 

尽管这一切仍然显得笨拙。 是否有理由EXEC SQL字符串而不是按原样执行SELECT语句?

暂无
暂无

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

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