在select语句中将Oracle select字符串转换为布尔值

在select语句中将Oracle select字符串转换为布尔值,oracle,Oracle,我是甲骨文的新手:) 我发现这个语句有一个名为Active的字符串值。该值可以是Y或N。我想执行一个select语句,为该字段返回一个布尔值。 现在看起来是这样的: select h.catalogueid ID, h.cataloguename NAME, h.uniquecatalogue INCLUDEPRODUCTS, h.active ACTIVE, h.ownbrandedlabels OWNLABELS

我是甲骨文的新手:)

我发现这个语句有一个名为Active的字符串值。该值可以是YN。我想执行一个select语句,为该字段返回一个布尔值。 现在看起来是这样的:

select h.catalogueid    ID,
    h.cataloguename     NAME,
    h.uniquecatalogue   INCLUDEPRODUCTS,
    h.active            ACTIVE,
    h.ownbrandedlabels  OWNLABELS            
from cc_ob_catalogueheader h
select h.catalogueid    ID,
    h.cataloguename     NAME,
    h.uniquecatalogue   INCLUDEPRODUCTS,
    h.active = 'Y'      ACTIVE,
    h.ownbrandedlabels  OWNLABELS            
from cc_ob_catalogueheader h
我想这样做:

select h.catalogueid    ID,
    h.cataloguename     NAME,
    h.uniquecatalogue   INCLUDEPRODUCTS,
    h.active            ACTIVE,
    h.ownbrandedlabels  OWNLABELS            
from cc_ob_catalogueheader h
select h.catalogueid    ID,
    h.cataloguename     NAME,
    h.uniquecatalogue   INCLUDEPRODUCTS,
    h.active = 'Y'      ACTIVE,
    h.ownbrandedlabels  OWNLABELS            
from cc_ob_catalogueheader h
但这在句法上是不正确的。有人知道我怎么做吗?

我自己解决了这个问题。 我将select语句更改为:

select h.catalogueid                                ID,
    h.cataloguename                                 NAME,
    h.uniquecatalogue                               INCLUDEPRODUCTS,
    CASE WHEN (h.active = 'Y') THEN 1 ELSE 0 END    ACTIVE,
    h.ownbrandedlabels                              OWNLABELS
from cc_ob_catalogueheader h

Oracle不支持SQL级别的布尔值(但确实支持PL/SQL级别的布尔值),这是什么意思?我的意思是,就Oracle SQL引擎而言,布尔值不受支持,而且您只能使用“Y”/“N”,0/1…您没有解决问题,您仍然没有布尔值,只有一个数值