sql请教 where trim("Stage")='Formal' 可以 ----- where Upper("Stage")=Upper('Formal') 可以--- "Stage"='Formal' 不可以 为什么

etuchang 2008-03-26 02:35:17
Stage字段 nvarchar2 10

select "Stage" from "CDM_PARTS_MASTER" where 。。。。

标题可以的意思sql语句中用这个条件能检索出数据。
"Stage"='Formal'就检索不出。

开始以为是有空格。
但是 Upper("Stage")=Upper('Formal') 可以
就想不通了。

ps :
select LENGTH("Stage") from "CDM_PARTS_MASTER" where Upper("Stage")=Upper('Formal')
结果 6
...全文
137 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
flycbx 2008-04-23
  • 打赏
  • 举报
回复
菜鸟学学中
doer_ljy 2008-03-27
  • 打赏
  • 举报
回复
LZ能保证数据库里只有一条数吗?
如果有如下数据两条,你说会怎么样?
'FORmal'
' Formal'
如果能保证,首先Upper函数不会自动trim的,
LZ可以试一下,length(trim("Stage"))和 LENGTH("Stage")的大小。
另外,如果真如你所说,我只能说:
真的活见鬼了!
HelloWorld_001 2008-03-26
  • 打赏
  • 举报
回复
不知道
etuchang 2008-03-26
  • 打赏
  • 举报
回复
select LENGTH("Stage"),"Stage" from "CDM_PARTS_MASTER"

结果 6 ,Formal
HelloWorld_001 2008-03-26
  • 打赏
  • 举报
回复
upper也把空格给去了

数据肯定是有空格的
etuchang 2008-03-26
  • 打赏
  • 举报
回复
晕,看一下标题,标题。

实际没有空格。
也没有大小写问题。

继续想不通。。。
HelloWorld_001 2008-03-26
  • 打赏
  • 举报
回复
你前面没说TRIM可以啊!
如果
where trim("Stage")='Formal'
那么就是 "Stage" 前后有空格

etuchang 2008-03-26
  • 打赏
  • 举报
回复
where trim("Stage")='Formal' 可以

楼上的2位
HelloWorld_001 2008-03-26
  • 打赏
  • 举报
回复
大小写问题。
upper就全变大写了
doer_ljy 2008-03-26
  • 打赏
  • 举报
回复
有啥想不通的?
比如字段的值是'FORmal'转成大写以后等于'FORMAL'就有记录,
不用Upper函数,'FORmal'肯定不等于'Formal'。
很怀疑是搞笑贴。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧