Есть ли способ CAST нескольких битовых столбцов в int вместо перезаписи CAST для каждого столбца? - PullRequest
0 голосов
/ 01 февраля 2019

Я использую SQL Server Management Studio 2014 и пытаюсь получить запрос, чтобы включить все битовые столбцы, которые являются двоичными по природе (либо 0, либо 1), и добавить столбец, чтобы указать, больше ли сумма этих столбцов, чем1. Проблема в том, что все столбцы имеют битовые типы данных, и мне нужно привести их к типу int, чтобы выполнить какое-либо добавление.Я хочу знать, существует ли более простой способ CAST для нескольких столбцов вместо переписывания функции CAST для каждого столбца.

Например, если все эти столбцы в битах:

student, graduated, incomplete


SELECT CASE 
 WHEN CAST(student AS INT) + CAST(graduated AS INT) + CAST(incomplete AS INT) > 0 
    THEN 'complete' END AS status_shown
FROM table1

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Если столбцы являются битами - это может помочь:

SELECT CASE 1 WHEN t.student|t.graduated|t.incomplete THEN 'complete' END AS [status_shown] 
FROM table1 t;
0 голосов
/ 01 февраля 2019

Вам вообще не нужно разыгрывать:

select (case when student = 1 or graduated = 1 or incomplete = 1
             then 'complete'
        end) as status_shown
from table1;
...