Булевы выражения в Списке выборки SQL

Я хочу создать Выбор SQL, чтобы сделать модульный тест в SQL Server MS 2005. Основная идея - это:

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

Причем идея - это, если бы значение столбца "нечто" является "Результатом", то я получил бы значение истинных/1; если бы это не, я получил бы ложь/0.

К сожалению, T-SQL не нравится выражение; это дросселирует на, равняется знаку.

Есть ли некоторый способ оценить выражение в списке выборки SQL и получить подлежащий возврату результат? (Или некоторый другой способ достигнуть поблочного тестирования, которое я хочу?)


Править: 3 больших, ответы, все созданные вокруг СЛУЧАЯ. Я приму feihtthief's, поскольку он имеет наименьшее количество представителя и таким образом нуждается в нем больше всего. :-) Благодаря всем.

50
задан Uwe Keim 9 October 2019 в 20:56
поделиться

0 ответов

Используйте конструкцию случая:

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

Также см. документация СЛУЧАЯ Transact-SQL MSDN .

79
ответ дан patrickmdnet 7 November 2019 в 10:41
поделиться
SELECT 'TestName', 
    CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar 
WHERE baz = @Criteria
19
ответ дан Joel Coehoorn 7 November 2019 в 10:41
поделиться

ВАРИАНТ ИСПОЛЬЗОВАНИЯ:

SELECT 'Test Name' [col1],
  CASE foo
    WHEN 'Result' THEN 1
    ELSE 0
  END AS [col2]
FROM bar
WHERE baz = (some criteria)
15
ответ дан John 7 November 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: