64

MS SQL Server 2005 で単体テストを実行するために SQL Select を作成したいと考えています。基本的な考え方は次のとおりです。

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

「foo」列の値が「Result」の場合、true/1 の値が得られるという考えです。そうでない場合は、false/0 になります。

残念ながら、T-SQL はこの式を好みません。等号で窒息します。

SQL 選択リスト内の式を評価して、返される結果を取得する方法はありますか? (または、私が望む単体テストを達成する他の方法はありますか?)


編集:3つの素晴らしい回答、すべてCASEを中心に構築されています。彼は担当者が最も少なく、したがって最も必要としているため、私はフェイトシーフを受け入れます。:-) みんなありがとう。

4

4 に答える 4

89

ケース構成を使用します。

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

MSDN Transact-SQL CASE のドキュメントも参照してください。

于 2009-01-30T22:30:45.627 に答える
21
SELECT 'TestName', 
    CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar 
WHERE baz = @Criteria
于 2009-01-30T22:30:44.427 に答える
17

使用事例:

SELECT 'Test Name' [col1],
  CASE foo
    WHEN 'Result' THEN 1
    ELSE 0
  END AS [col2]
FROM bar
WHERE baz = (some criteria)
于 2009-01-30T22:33:14.813 に答える
13

以下も使用できます。

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

これがしばらく前に尋ねられたことは知っていますが、これが誰かの役に立てば幸いです。

于 2015-09-12T00:48:31.407 に答える