Domanda

Voglio creare un SQL Select per eseguire un unit test in MS SQL Server 2005. L'idea di base è questa:

seleziona 'Nome test', foo = 'Risultato' dal bar dove baz = (alcuni criteri)

L'idea è che, se il valore di " foo " la colonna è " Risultato " ;, quindi otterrei un valore di true / 1; in caso contrario, diventerei false / 0.

Sfortunatamente, a T-SQL non piace l'espressione; soffoca sul segno uguale.

Esiste un modo per valutare un'espressione nell'elenco di selezione SQL e ottenere un risultato restituibile? (O qualche altro modo per raggiungere i test unitari che desidero?)


EDIT: 3 fantastici, risposte, tutto costruito attorno a CASE. Accetterò il feihtthief perché ha il minimo rappresentante e quindi ne ha più bisogno. :-) Grazie a tutti.

È stato utile?

Soluzione

Usa il costrutto case:

select 'Test Name', 
    case when foo = 'Result' then 1 else 0 end 
    from bar where baz = (some criteria)

Vedi anche la documentazione MSDN Transact-SQL CASE .

Altri suggerimenti

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

Usa CASE:

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

Puoi anche usare:

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

So che è stato chiesto un po 'di tempo fa, ma spero che questo aiuti qualcuno là fuori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top