0

环境:

Oracle 版本:10.2.0.1.0 版服务器:Windows XP

oracle中的语言:

select userenv('language') from dual;

结果:
CHINESE_CHINA.AL32UTF8

表结构:

PARTY_ID NVARCHAR2(50)
PARTY_TYPE NVARCHAR2(50)

表中数据:

PARTY_ID | PARTY_TYPE
---------+-----------
BEST     | C    
WILL     | C

SQL1:

SELECT  * FROM cc_party  
WHERE party_type = 'C'

结果:

没有

SQL1:

SELECT  * FROM cc_party  
WHERE party_type = 'C' or party_type = 'C'

结果:

PARTY_ID | PARTY_TYPE
---------+-----------
BEST     | C    
WILL     | C

问题:

为什么我不能通过party_type = 'C'(SQL1) 选择数据?NVARCHAR2 有什么特别之处吗?

如果我将 where 子句更新为party_type = 'C' or party_type = 'C'(SQL2),我可以得到结果。这让我很困惑。我想知道为什么我添加 or 子句时会出现结果。

4

1 回答 1

3

试试看,告诉我结果

SELECT * FROM cc_party WHERE trim(party_type) = 'C'

于 2010-09-19T07:30:12.023 回答