Sql语句的问题,大家不要笑我 ( 积分: 20 )

  • 主题发起人 主题发起人 翁富大
  • 开始时间 开始时间

翁富大

Unregistered / Unconfirmed
GUEST, unregistred user!
SQLString := 'Select DECODE(Substr(DORDER_KIND,1,1),''1'',''a'',''2'',''b'')||'',''||';
SQLString := SQLString + ' DECODE(Substr(DORDER_KIND,2,1),''1'',''cc'',''2'',''dd'',''3'',''ee'') ORDERKIND,';
这句sql语句是什么意思??
 
SQLString := 'Select DECODE(Substr(DORDER_KIND,1,1),''1'',''a'',''2'',''b'')||'',''||';
SQLString := SQLString + ' DECODE(Substr(DORDER_KIND,2,1),''1'',''cc'',''2'',''dd'',''3'',''ee'') ORDERKIND,';
这句sql语句是什么意思??
 
你用的Oracle吧,没用过,不过也能猜出来,你看下帮助撒。
应该是这样的吧:
DECODE相当于SQL SERVER 中的CASE语句吧
而Substr取子串相当于...中的SUBSTRING吧
---------------------------------------------
那么:
Substr(DORDER_KIND,1,1)就是取DORDER_KIND从第一个位置看是长度为1的子串
DECODE(Substr(DORDER_KIND,1,1),''1'',''a'',''2'',''b'')如果Substr(DORDER_KIND,1,1)为1就返回a,如果为2就返回b
错了请高手更正!
 
decode是ORACLE涵数,定义为decode(变量,变量值,明文,变量值,明文,....其它明文).
理解后,则此SQL不难理解.
即 选择 如果DORDER_KIND第一个字母起串长为1的字串值为1时,表示为a,字串值为2时,表示为b,此串联接逗号,再联接(如果DORDER_KIND第二个字母起串长为1的字串值为1时,表示为cc,字串值为2时,表示为dd,字吕值为3时,表示为ee) 此字串最终名名为:ORDERKIND
 
这是ORACLE里比较初级的SQL,加强学习吧
 
另:回答问题不忘问下Oracle中dual这个表是干什么用的?
偶确实对Oracle一点也不了解。
 
dual是个哑表.

select sysdate from dual 说白了就是为了select 符合规范.

select sysdatetime 是SQL SERVER的,但是这是不完整的.
 
ak_2005又来帮助小弟了,真是感激不尽!
keepyea的解释很详尽,赞赞赞!
本人也没专门学过oracle,以后有时间会加强学习
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
680
import
I
I
回复
0
查看
843
import
I
后退
顶部