Oracle中SQL语句问题!(40分)

  • 主题发起人 主题发起人 PowerCMM
  • 开始时间 开始时间
P

PowerCMM

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Product_Assembly表中有三个字段,
Product_ID 产品ID
Assembly_ID Product_ID所属于组件或部件
Description 产品的说明
SQL语句如下:
select lpad('',2*(level-1))||Assembly_ID Assembly_ID
Product_ID,Level,Description
from Product_Assembly
start with Product_ID='B200'
connect by prior Product_ID=Assembly_ID;
我想问 lpad('',2*(level-1))||Assembly_ID Assembly_ID为什么有两个Assembly_ID,
||在Oracle中代表什么意思?
 
语法:
LPAD(string1,x[,string2])
目的:
返回(在字符串上按照从右向左的方向计算字符位置)在X字符长度的位置上嵌入String2中的
字符的string1.如果string2的长度比X字符少,那么就按照需要进行复制.如果String2多于X
字符,那么仅有string2的前X个字符被使用.如果没有指定string2,那么缺省是使用空格填弃.
出自:<ORACLE PL/SQL程序设计>一书.
例子:
SQL> select lpad ('short string',20,'XY')"second" from dual;

second
--------------------
XYXYXYXYshort string

2.||是将两个字符合并到一起,例子:
SQL> select 'A'||'B' from dual;

'A
--
AB

SQL> desc test123;
名稱 Null? 類型
----------------------------------------------------- -------- ----------------
ID VARCHAR2(5)
NAME VARCHAR2(5)

SQL> select ID||Name from test123;

ID||NAME
----------
1aa

SQL> select * from test123;

ID NAME
----- -----
1 aa

你说上面为什么有两个Assembly_ID,这没什么奇怪,一个作为前面合并用,一个后面独立使用.
你再多写两个都不会出问题.
例:
SQL> select ID,ID,Name from test123;

ID ID NAME
----- ----- -----
1 1 aa
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
855
SUNSTONE的Delphi笔记
S
S
回复
0
查看
783
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部