Oracle 10g 中的 NVARCHAR2 方程问题

发布于 2024-09-19 16:02:20 字数 1038 浏览 5 评论 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' 或 party_type = 'C' (SQL2),我可以获得结果。这让我很困惑。我想知道为什么当我添加 or 子句时会出现结果?

Env:

Oracle version: Release 10.2.0.1.0
Server: Windows XP

Language in oracle:

select userenv('language') from dual;

Result:
CHINESE_CHINA.AL32UTF8

Table structure:

PARTY_ID NVARCHAR2(50)
PARTY_TYPE NVARCHAR2(50)

Data in the table:

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

SQL1:

SELECT  * FROM cc_party  
WHERE party_type = 'C'

Result:

nothing

SQL1:

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

Result:

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

Question:

Why I can not select data by party_type = 'C' (SQL1) ? Is there some special things about NVARCHAR2 ?

If I update the where clause to party_type = 'C' or party_type = 'C' (SQL2), I can get the result. It makes me confused. I want to know why the result come out when I added or clause.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞笑我太脆弱 2024-09-26 16:02:20

尝试并告诉我结果

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

Try,and tell me the result

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文