Sans ressasser ce que les autres messieurs ont dit, si vous voulez toujours faire cela, il n'y a aucun moyen direct ... Mais vous pouvez utiliser deux colonnes de bits,
puis ajouter une colonne calculée qui génère la les valeurs (0-3) qui correspondent aux valeurs des colonnes de 2 bits ....
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]
si vous avez besoin d'un ensemble différent de quatre valeurs alors 0-3 juste les mettre dans la formule de calcul:
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]
Le seul problème est que la colonne calculée est pas directement « inscriptible » - vous » d doivent écrire dans les champs de bits individuels dans le code séparé ... comme
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 ...
Veuillez modifier la question afin de publier les 4 valeurs possibles; cette question a une "odeur de code" - l'intuition de notre programmeur nous dit que vous pouvez aboyer sur le mauvais arbre –