Pregunta

Quiero crear un SQL Select para hacer una prueba unitaria en MS SQL Server 2005. La idea básica es esta:

seleccione 'Nombre de prueba', foo = 'Resultado' del bar donde baz = (algunos criterios)

La idea es que, si el valor de " foo " la columna es " Result " ;, entonces obtendría un valor de true / 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 de SQL y obtener un resultado retornable? (¿O alguna otra forma de lograr las pruebas unitarias que quiero?)


EDIT: 3 excelentes respuestas, todo construido alrededor de CASE. Acepto los feithtief's ya que tiene la menor representación y, por lo tanto, la necesita más. :-) Gracias a todos.

¿Fue útil?

Solución

Utilice 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 de MSDN Transact-SQL CASE .

Otros consejos

SELECT 'TestName', 
    CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar 
WHERE baz = @Criteria

CASO de uso:

SELECT 'Test Name' [col1],
  CASE foo
    WHEN 'Result' THEN 1
    ELSE 0
  END AS [col2]
FROM bar
WHERE baz = (some criteria)

También puedes usar:

select 
    'Test Name', 
    iif(foo = 'Result', 1, 0)
from bar 
where baz = (some criteria)

Sé que esto se preguntó hace un tiempo, pero espero que esto ayude a alguien por ahí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top