2011-05-17 38 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