2011-05-17 14 views
17

En SQL Server, estoy tratando con estas columnas:SQL - crear en la columna SELECT para probar la igualdad

tblSchedule


ID
StaffID
Hora de inicio
EndTime

Quiero incluir un campo booleano en mi conjunto de resultados que indica si StartTime y EndTime son iguales. Algo análogo a esto:

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

Pero no estoy seguro de la sintaxis real para una operación como esa.

+2

¿Ha probado o estás suponiendo que no funciona? La sintaxis '(StartTime = EndTime) AS AreEqual' funciona bajo MySQL. (No tengo idea acerca de SQL Server) – Vache

+1

Su solución es estándar, debería funcionar. –

+0

Esa solución me estaba dando un error en SQL Server Mangement Studio. La sentencia CASE..ELSE, tan poco elegante como parece, funcionó a las mil maravillas. –

Respuesta

20

creo que esto es lo que busca

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

Gracias por su ayuda :) –

4

Intente utilizar un CASE WHEN en su declaración SELECT; algo como esto:

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