Подтвердить что ты не робот

Укажите тип данных с псевдонимом столбца в SQL Server 2008

Предположим, у меня есть следующая инструкция SELECT в представлении (SQL Server 2008):

SELECT (SELECT CASE 
                 WHEN HISTORY.OUTOFSERV = 'Y' OR HISTORY.OUTOFSERV = 'y' THEN 1 
                 ELSE 0 
               END) AS OOS 
  FROM HISTORY

Столбец OOS заканчивается типом int, но я бы хотел, чтобы он был бит типа. Как я могу это сделать?

4b9b3361

Ответ 1

Используйте CAST/CONVERT, чтобы явно определить тип данных:

SELECT CAST (CASE 
               WHEN LOWER(h.outofserv) = 'y' THEN 1 
               ELSE 0 
             END AS BIT) AS OOS 
 FROM HISTORY h

Ответ 2

вы должны использовать CAST(1 as bit) и CAST(0 as bit) вместо 1 и 0:

SELECT (CASE WHEN HISTORY.OUTOFSERV = 'Y' OR HISTORY.OUTOFSERV = 'y'
             THEN CAST(1 AS bit) 
             ELSE CAST(0 AS bit) 
        END) AS OOS 
FROM HISTORY

Ответ 3

Здесь вы можете получить желаемый тип данных BIT и с небольшим чистым кодом, используя:

  • верхняя()
  • литая()

    ВЫБРАТЬ КАСТ (CASE
                 КОГДА ВЕРХНИЕ (History.OutofServ) = 'Y' THEN 1
                 ELSE 0            END AS BIT) AS OOS FROM History

Я надеюсь, что это поможет.