2011-05-17 124 views
17

在SQL Server中,我处理这些列:SQL - 在SELECT创建列测试平等

tblSchedule


ID
,STAFFID
开始时间
结束时间

我想在我的结果集的布尔字段,表示开始时间和结束时间是否相等。类似的东西:

SELECT StaffID, StartTime, EndTime, (StartTime = EndTime) AS AreEqual 
FROM tblSchedule Where StaffID = xxx 

但我不确定这样的操作的实际语法。

+2

你有什么测试,它还是你假设它不工作? '(StartTime = EndTime)AS AreEqual'语法在MySQL下工作。 (我不知道SQL Server的想法) – Vache 2011-05-17 03:08:29

+1

您的解决方案是标准的,应该工作。 – 2011-05-17 03:21:53

+0

这种解决办法给我在SQL Server管理CHINESE Studio中的一个错误。 CASE..ELSE声明,尽管看上去不雅,却像一种魅力。 – 2011-05-17 04:02:41

回答

20

我认为这是你正在寻找

SELECT StaffID 
     , StartTime 
     , EndTime 
     , Case 
      When StartTime = EndTime Then 1 
      else 0 
     End as AreEqual 
FROM tblSchedule 
Where StaffID = xxx 
+0

感谢您的帮助:) – 2011-05-17 04:03:01

4

尝试使用CASE WHENSELECT声明;是这样的:

SELECT CASE WHEN StartTime = EndTime THEN 1 ELSE 0 END AS AreEqual 
FROM MyTable