Ответ 1
Используйте конструкцию case:
select 'Test Name',
case when foo = 'Result' then 1 else 0 end
from bar where baz = (some criteria)
Также см. документацию MSDE Transact-SQL CASE.
Я хочу создать SQL Select для проведения модульного теста в MS SQL Server 2005. Основная идея заключается в следующем:
select 'Test Name', foo = 'Result'
from bar
where baz = (some criteria)
Идея заключается в том, что если значение столбца "foo" равно "Результат", то я получу значение true/1; в противном случае я получу false/0.
К сожалению, T-SQL не нравится выражение; он задыхается от знака равенства.
Есть ли какой-нибудь способ оценки выражения в списке выбора SQL и получения возвращаемого результата? (Или какой-то другой способ добиться модульного тестирования, который я хочу?)
ОБНОВЛЕНИЕ: 3 здорово, ответы, все построено вокруг CASE. Я приму feihtthief, поскольку он получил наименьшее количество повторений и, следовательно, нуждается в нем больше всего :-) Спасибо всем.
Используйте конструкцию case:
select 'Test Name',
case when foo = 'Result' then 1 else 0 end
from bar where baz = (some criteria)
Также см. документацию MSDE Transact-SQL CASE.
SELECT 'TestName',
CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar
WHERE baz = @Criteria
Используйте CASE:
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)
Я знаю, что это было задано некоторое время назад, но я надеюсь, что это поможет кому-то там.