Простой способ запомнить:
cast (
case
when FC.CourseId is not null then 1 else 0
end
as bit)
Спецификация CAST - "CAST (выражение типа AS)". В этом контексте CASE - это выражение .
Если у вас есть несколько таких выражений, я бы объявил битовые переменные @true и @false и использовал их. Или используйте UDF, если действительно хотите ...
DECLARE @True bit, @False bit;
SELECT @True = 1, @False = 0; --can be combined with declare in SQL 2008
SELECT
case when FC.CourseId is not null then @True ELSE @False END AS ...
Вы можете добавить второй фрагмент в качестве определения поля для ICourseBased в представлении.
DECLARE VIEW MyView
AS
SELECT
case
when FC.CourseId is not null then cast(1 as bit)
else cast(0 as bit)
end
as IsCoursedBased
...
SELECT ICourseBased FROM MyView
Нет, но вы можете преобразовать все выражение, а не его подкомпоненты. Фактически, это, вероятно, делает его менее читаемым в данном случае.
К сожалению, нет. Вам нужно будет использовать каждое значение отдельно.