Oracle 10g中的NVARCHAR2方程问题

时间:2010-09-19 07:25:32

标签: oracle nls

ENV:

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),我可以得到结果。这让我感到困惑。我想知道为什么在我添加或子句时结果会出来。

1 个答案:

答案 0 :(得分:3)

试试,告诉我结果

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