2013-11-01 18 views
0

我有表部(部门名,颜色)。我想创建一个独特的队伍,通过选择deptname的前3个字符和颜色的前2个字符和相应的数字。我得到的SQL部分下降,但不知道下一步是什么Oracle SQL:从现有表创建唯一的队ID

select deptname, upper(substr(1,3), color upper(substr(1,2) 
from dept; 

这里是我的dept表

DEPTNAME............COLOR 
SALES...............Orange 
ACCOUNTING..........Blue 

而且我的输出应该是

SALOR1 
ACCBL2 
+0

你还没有提到你的“相应数字”要求是什么 - 顺序?随机?它应该始终如一吗? – dispake

+0

对不起,我的意思是任意号码 – BFF

回答

1

根据什么你正在使用它,你可以使用rownum:

select upper(substr(deptname,1,3)) || upper(substr(color,1,2)) 
|| rownum from dept; 

无法保证运行此sql每次运行时都会生成相同的teamid。为此,你必须添加一个数字的另一列。

+0

我明白了,谢谢! – BFF