10
我想根据位域是true还是false来有条件地选择一些东西。这是我最初试图语法:为什么我不能在SQL case语句中使用位域作为布尔表达式?
CASE WHEN isSoon THEN 'Soon' ELSE 'Not so soon' END As HowSoon
这对我来说很有意义,因为接下来的“当”必须是一个布尔表达式,这isSoon
是,因为它是一个位字段。但是,这并没有奏效。我不得不到底做的是:
CASE WHEN isSoon = 1 THEN 'Soon' ELSE 'Not so soon' END As HowSoon
这似乎是多余的,我...这就像一种编程语言,而不是更直观if(isSoon)
写if(isSoon == True)
,并违背了粮食。为什么SQL是这样设置的?是因为位域不是真正的布尔值?
你还可以说你正在使用哪种数据库提供程序吗? MySQL似乎没有问题。 – 2010-12-02 13:04:19
这也让我感到困惑,但是sql没有这样设置。就像你将一个参数传递给一个SP时不能使用计算一样(前者你不能执行`exec ListPermissionsByUser @DomainName +'''+ @ UserName`) – 2010-12-02 13:05:18