将varchar值“Yes”转换为数据类型位时转换失败

时间:2011-12-08 22:32:16

标签: sql

我使用了一个案例来将布尔列值更改为实际意味着什么的文本字符串。首先,在对这些列执行WHERE语句时,我是使用布尔值还是更新的文本字符串?

我用过:

WHERE TrainingProgram.blnInCatalogue = 'Yes' 
  AND TrainingProgram.blnActive = 'Inactive'

但我收到错误:

  

将varchar值'Yes'转换为数据类型位时转换失败。

我做错了吗?

2 个答案:

答案 0 :(得分:0)

如果是真的,请尝试使用:

WHERE TrainingProgram.blnInCatalogue <> 0 

如果为false,请尝试使用:

WHERE TrainingProgram.blnInCatalogue = 0 

blnInCatalogue列是一个位字段,它并不了解字符串&#39;是&#39;手段。它只知道0或1。

答案 1 :(得分:0)

虽然您可以将显示位列的大小写用作可读字符串,但它们的内部值仍为bit。它们只能比较01