SQL 선택 목록의 부울 표현
-
20-08-2019 - |
문제
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)
나는 이것이 잠시 동안 묻는 것을 알고 있지만, 이것이 누군가가 거기에 도움이되기를 바랍니다.
제휴하지 않습니다 StackOverflow