Не перефразируя слова других джентльменов: если вы все еще хотите это сделать, прямого пути нет ... Но вы можете использовать два битовых столбца,
, а затем добавьте вычисляемый столбец, который генерирует значения (0-3), которые соответствуют значениям 2-битных столбцов ....
CREATE TABLE [dbo].[testTable](
[colA] [bit] NOT NULL,
[colB] [bit] NOT NULL,
[CalcCol] AS (case [colA] when (1) then (2) else (0) end+[colB])
) ON [PRIMARY]
если вам нужен другой набор из четырех значений, то 0-3 просто поместите их в формулу расчета:
CREATE TABLE [dbo].[testTable](
[colA] [bit] NOT NULL,
[colB] [bit] NOT NULL,
[CalcCol] As
(Case ColA
When 0 Then Case ColB WHen 0 Then ValueA Else ValueB End
Else Case ColB WHen 0 Then ValueC Else ValueD End
End)
) ON [PRIMARY]
Единственная проблема заключается в том, что вычисляемый столбец не может быть «записан» напрямую - вам нужно записывать отдельные битовые поля в отдельном коде ... как
Update TestTable Set
colA = Case When Value In (ValueA, ValueB) Then 0 Else 1 End,
colB = Case When Value In (ValueA, ValueC) Then 0 Else 1 End
Where ...