tipos - operadores sql y ejemplos
Expresiones booleanas en la lista de selección de SQL (4)
Quiero crear un SQL Select para hacer una prueba unitaria en MS SQL Server 2005. La idea básica es esta:
seleccione ''Test Name'', foo = ''Result'' desde la barra donde baz = (algunos criterios)
La idea es que, si el valor de la columna "foo" es "Resultado", obtendría un valor de verdadero / 1; si no es así, obtendría falso / 0.
Desafortunadamente, a T-SQL no le gusta la expresión; se ahoga en el signo igual.
¿Hay alguna forma de evaluar una expresión en la lista de selección SQL y obtener un resultado retornable? (¿O alguna otra forma de lograr la prueba unitaria que deseo?)
EDIT: 3 excelentes respuestas, todas basadas en CASE. Aceptaré la fe de feihtief, ya que tiene la menor representación y, por lo tanto, la necesita más. :-) Gracias a todos.
Use CASE:
SELECT ''Test Name'' [col1],
CASE foo
WHEN ''Result'' THEN 1
ELSE 0
END AS [col2]
FROM bar
WHERE baz = (some criteria)
SELECT ''TestName'',
CASE WHEN Foo = ''Result'' THEN 1 ELSE 0 END AS TestResult
FROM bar
WHERE baz = @Criteria
Usa la construcción de caso:
select ''Test Name'',
case when foo = ''Result'' then 1 else 0 end
from bar where baz = (some criteria)
Consulte también la documentación CASE de MSDN Transact-SQL .
También puedes usar:
select
''Test Name'',
iif(foo = ''Result'', 1, 0)
from bar
where baz = (some criteria)
Sé que esto fue pedido hace un tiempo, pero espero que esto ayude a alguien por ahí.