非布尔类型的表达式

时间:2016-04-20 07:57:01

标签: sql

有了这个:

select puser_id, puser_name, plast_login_time, plicense_level =
    case 
        when '1' then 'Потребитель'
        else 'Автор'
    end 
from dbo.PPOM_USER
order by plast_login_time

我有这样的错误:

  

在上下文中指定的非布尔类型的表达式   条件是预期的,接近'然后'。

请帮我在代码中找到问题。

5 个答案:

答案 0 :(得分:1)

将您的WHEN更改为:

when plicense_level = '1'

您需要在WHEN中进行有效比较,以避免错误。

来自CASE文档:

  

WH_ when_expression

     

是一个简单的表达式,当input_expression与之比较时   使用简单的CASE格式。 when_expression是任何有效的表达式。

答案 1 :(得分:1)

CASE 语句表达式的语法不太正确,请尝试:

case plicense_level
    when '1' then 'Потребитель'
    else 'Автор'
end 

答案 2 :(得分:0)

如果您要尝试向用户显示描述许可证的文本而不是列的数值,您应该尝试这样的事情:

xlWorkBook.SaveAs("C:\ABC.xlsx")

您可以在this page at MSDN

中找到一些CASE样本

答案 3 :(得分:0)

谢谢大家!

决策是在报告中改变字段plicense_level的数据类型 Figure 1

Figure 2

答案 4 :(得分:-2)

select puser_id, puser_name, plast_login_time, plicense_level =
case 
    when plicense_level = '1' then 'Потребитель'
    else 'Автор'
end 
from dbo.PPOM_USER
order by plast_login_time