Подразумевайте бит с постоянным 1 или 0 в SQL Server

Простой способ запомнить:

  • F unction → F ree (Свободные средства не принадлежат объекту или классу)
  • M ethod → ​​ M ember (член объекта или класса)
144
задан gbn 14 May 2010 в 19:23
поделиться

4 ответа

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 ...
215
ответ дан 23 November 2019 в 22:55
поделиться

Вы можете добавить второй фрагмент в качестве определения поля для 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
10
ответ дан 23 November 2019 в 22:55
поделиться

Нет, но вы можете преобразовать все выражение, а не его подкомпоненты. Фактически, это, вероятно, делает его менее читаемым в данном случае.

6
ответ дан 23 November 2019 в 22:55
поделиться

К сожалению, нет. Вам нужно будет использовать каждое значение отдельно.

1
ответ дан 23 November 2019 в 22:55
поделиться