复杂sql求助

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:57:46
数据库:oracle
表名:SY

字段名:ID(INT),DS(VARCHAR2(255)),JB(VARCHAR2(255)),TC(VARCHAR2(255)),SQ
(VARCHAR2(255)).

表中的内容:
ID DS JB TC SQ
1 杭州 重要 C
2 宁波 次要 B
3 温州 次要 A

要求:给每条记录填上SQ
SQ的要求是:DS+JB+TC+自动生成的序列号(000001)
并且中文名要改为拼音如DS:杭州 HZ,宁波 NB,城市的个数是知道的,总共6个城市,然后是JB: 重要 ZY,次要 CY;JB的个数也是知道的,3个;最后还要加上-和自动生成的序列号,所以最后生成的 SQ应当是这样的:ZHZYC-000001,NBCYB-000002
。。。。。,最好用一条sql搞定,功望高手指教;成后再加30分。

UPDATE SY SET SQ=DECODE(DS,'杭州','HZ''宁波,'NB','温州','WZ','城市4','CT4','城市5','CT5','CT6')||DECODE(JB,'重要','ZY','CY')||SQ||'-'||TO_CHAR((SELECT COUNT(*)+1 FROM SY WHERE LENGTH(SQ)>1),'000000')