Я хочу создать Выбор SQL, чтобы сделать модульный тест в SQL Server MS 2005. Основная идея - это:
select 'Test Name', foo = 'Result'
from bar
where baz = (some criteria)
Причем идея - это, если бы значение столбца "нечто" является "Результатом", то я получил бы значение истинных/1; если бы это не, я получил бы ложь/0.
К сожалению, T-SQL не нравится выражение; это дросселирует на, равняется знаку.
Есть ли некоторый способ оценить выражение в списке выборки SQL и получить подлежащий возврату результат? (Или некоторый другой способ достигнуть поблочного тестирования, которое я хочу?)
Править: 3 больших, ответы, все созданные вокруг СЛУЧАЯ. Я приму feihtthief's, поскольку он имеет наименьшее количество представителя и таким образом нуждается в нем больше всего. :-) Благодаря всем.
Используйте конструкцию случая:
select 'Test Name',
case when foo = 'Result' then 1 else 0 end
from bar where baz = (some criteria)
Также см. документация СЛУЧАЯ Transact-SQL MSDN .
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)