急!!!
解决方案 »
- 将表中姓名相同的ID只保留注册时间最大的数据,其余删除
- 查询条件中的1=1或1=0是什么意思?
- 执行存储过程 execute总是提示“无效的sql语句”
- 关于exists的一个奇怪问题!!!
- oracle 查询中符号||是什么意思?
- 【经典力作】★分布式程序设计文档公布★【效仿Linus Torvalds的共享精神完全公开电子版】
- 关于数据库结构移动的问题????
- 关于彻底删除Oracle的问题。
- 程序报oralce错误 ora-00604:递归SQL层1出现错误,回答者都有分
- Pl/SQL中有没有像VB中split一样的函数,可以将逗号分隔的字符串劈成数组?
- 求一条sql,头都想大了!~~
- 各位大虾帮忙,急急急。。。。。
可以参考我这个,我这个是6位用,隔开的SELECT TO_NUMBER
(DECODE
(LENGTH (in_promo_id),
6, in_promo_id,
SUBSTR
(in_promo_id,
DECODE
(ROWNUM,
1, 1,
INSTR
(in_promo_id,
',',
1,
ROWNUM - 1
)
+ 1
),
6
)
)
) promo_id
FROM DUAL
CONNECT BY ROWNUM <=
LENGTH (in_promo_id)
- LENGTH (REPLACE (in_promo_id,
',',
''
)
)
+ 1
传进来的in_promo_id
格式如下
可能是100000
也有可能是100001,100002,100004
长度固定,但不是6的话,把我的语句里所有6改成你的长度
其实关键就是substr 和instr配合起来截取,用instr找到起始位置,然后再用instr来算出要截取的长度
就是要注意第一个和最后个