无法直接筛选Oracle数据库列

kgsdhlau  于 2023-03-01  发布在  Oracle
关注(0)|答案(1)|浏览(160)

我正在使用www.example.com odbc使用Netsuite SuiteAnalytics ConnectNetsuite2.com。我正在寻求查询事务表,同时筛选特定的事务状态。Netsuite,无论出于何种原因,要求您使用状态代码而不是状态描述。我对四个状态代码感兴趣,包括“B”,对应于“待定履行”
在测试过程中,我使用ID = xxxxx的事务。
我对事务表使用别名t。使用t.ID = xxxxx查询该表会得到一个结果(5个不同的事务行)。
t.STATUS返回“B”。TO_CHAR(t.STATUS)返回“B”。SUBSTR(t.STATUS,1,1)返回“B”。LENGTH(t.STATUS)返回1。
但是,如果我使用条件t.ID = xxxxx AND t.STATUS = 'B',或者TO_CHAR或SUBSTR选项,则不会返回任何值。t.STATUS LIKE '%B%'有效。
这怎么可能呢?有人知道这里发生了什么吗?因为我对四种不同的状态码感兴趣,所以LIKE方法似乎是个坏主意,我宁愿在不知道背景的情况下不要使用这个根本上更糟糕的选项。
编辑:如果t.状态=“B”,则为“T”,否则为“F”,按原样结束_B返回“T”
条件t.STATUS LIKE '%B'有效。t.STATUS LIKE 'B%'无效。我认为它是针对状态“销售订单:B当它返回列的时候,并没有真正的报告出来,真是一团糟,我需要凭直觉来理解它的语法,但是我会试着报告回来的。

qncylg1j

qncylg1j1#

WHERE中,必须使用

t.STATUS = 'SalesOrd:B'

如果在列描述期间进行测试,则必须使用

t.STATUS = 'B'

谢谢你先知。

相关问题