Comment faire pour convertir une colonne de type varchar pour colonne de bits de SQL SERVER
Flag1
est un varchar
colonne avec des valeurs "vrai" et "faux". J'ai besoin de le convertir en un peu de colonne.
Quand j'essaie de le faire:
Convert(Bit,Flag1)
il affiche une erreur
Msg 245, Level 16, State 1, Line 2
Syntax error converting the varchar value 'False' to a column of data type bit.
Juste un rappel. Pourriez-vous vérifier votre résultat pour éviter les faux positifs et négatifs? S'il vous plaît exécuter ceci:
declare @flag1 varchar(25) = 'True' -- des espaces de début
sélectionnez cas @flag1 quand le "vrai" à 1 lorsque la valeur 'false' then 0 else 0 end
merci de ne pas répondre en commentaire, aussi veuillez consulter les questions / réponses.
désolé. encore de nouveaux dans la. Va déplacer la réponse.
declare @flag1 varchar(25) = 'True' -- des espaces de début
sélectionnez cas @flag1 quand le "vrai" à 1 lorsque la valeur 'false' then 0 else 0 end
merci de ne pas répondre en commentaire, aussi veuillez consulter les questions / réponses.
désolé. encore de nouveaux dans la. Va déplacer la réponse.
OriginalL'auteur user1254579 | 2014-03-13
Vous devez vous connecter pour publier un commentaire.
Je soupçonne qu'il y a d'autres valeurs en outre à 'true' et 'false' dans le champ 'Flag1'. Afin de vérifier les valeurs dans Flag1.
select distinct Flag1 de YouTable.
Voici ma preuve:
Il fonctionne très bien.
Cependant, cela donne la même erreur.
-> Msg 245, Niveau 16, État 1, Ligne 2
Échec de la Conversion lors de la conversion de la valeur varchar 'False' pour les données de type bit.
Attention à la la espace de "Faux" dans le message d'erreur!
OriginalL'auteur Jian Huang
Lors de la sélection de la table, vous pouvez faire ceci:
Syntaxe:
SELECT CASE Flag1 WHEN 'true' THEN 1 ELSE 0 END AS FlagVal
.OriginalL'auteur Raging Bull