문제

MS SQL Server 2005에서 단위 테스트를 수행하기 위해 SQL Select를 만들고 싶습니다. 기본 아이디어는 다음과 같습니다.

'테스트 이름', foo = 'result'를 선택하여 BAZ = (일부 기준).

아이디어는 "foo"열의 값이 "결과"라면, 나는 true/1의 값을 얻는다는 것입니다. 그렇지 않으면 거짓/0이 될 것입니다.

불행히도, T-SQL은 표현을 좋아하지 않습니다. 그것은 평등 한 부호를 질식시킵니다.

SQL Select 목록에서 표현식을 평가하고 반환 가능한 결과를 얻는 방법이 있습니까? (또는 내가 원하는 단위 테스트를 달성하는 다른 방법?)


편집 : 3 개의 위대한 답변, 모두 케이스를 중심으로 구축되었습니다. 그가 가장 적은 담당자를 얻었 기 때문에 Feihtthief를 받아 들일 것입니다. 따라서 가장 필요합니다. :-) 모두에게 감사 드려요.

도움이 되었습니까?

해결책

케이스 구성 사용 :

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

또한 참조하십시오 MSDN Transact-SQL 사례 문서.

다른 팁

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

유스 케이스 :

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

당신은 또한 사용할 수 있습니다 :

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

나는 이것이 잠시 동안 묻는 것을 알고 있지만, 이것이 누군가가 거기에 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top