`

oracle case when 字符串转行

阅读更多
UPDATE tablename SET PARENTID=(
       case
       WHEN LENGTH(column1)/2=1 then '0'
       when LENGTH(column2)/2=2 then substr(column1,1,2)
       when LENGTH(column3)/2=3 then substr(column2,1,4)
       when LENGTH(column4)/2=4 then substr(column3,1,6)
       end
)


select
       userid,
       substr(userid,
              instr(',' || userid || ',', ',', 1, n),
              instr(',' || userid || ',', ',', 1, n + 1) -
              instr(',' || userid || ',', ',', 1, n) - 1) aa
  from xt_jbpm_dbsxb, (select level n from dual connect by level <= 10) x

where substr(userid,
              instr(',' || userid || ',', ',', 1, n),
              instr(',' || userid || ',', ',', 1, n + 1) -
              instr(',' || userid || ',', ',', 1, n) - 1) is not null
and id=77823
order by n
0
0
分享到:
评论

相关推荐

    Oracle中SQL语句行列之间相互转换

    - 每个`CASE WHEN`子句都会检查`bbb`列是否等于指定的字符串,如果匹配,则返回相应的`aaa`值;如果不匹配,则返回`NULL`。 ##### 2.2 方法二:使用PIVOT函数 对于字段数量较多的情况,使用`PIVOT`函数会更加方便...

    Oracle行列转换_总结

    除了上述两种基本的行列转换外,还有其他几种转换类型,包括多列到字符串、多行到字符串、字符串到多列以及字符串到多行的转换。这些转换通常涉及对数据进行重新组织或重组,以便于后续的处理或展示。 - **多列转换...

    Oracle的数据表中行转列与列转行的操作实例讲解

    例如,如果表`Tb_Student`的Subject列有多种科目,我们可以创建一个动态SQL字符串并执行它: ```sql declare @sql varchar(8000); set @sql = 'select sname as ' + '姓名'; select @sql = @sql + ' , max(case ...

    sql高级进阶

    - 遍历字符串:利用数据库函数逐个处理字符串中的字符。 - 字符串文字中包含引号:使用转义字符处理引号。 - 计算字符在字符串中出现的次数:使用LENGTH和SUBSTRING函数。 - 从字符串中删除不需要的字符:使用...

    Oracle实现行列转换的方法分析

    以下示例创建了一个名为`GET_C2`的函数,该函数接收`C1`的值,然后返回所有与该`C1`值关联的`C2`值的字符串。另一种方法是使用分析函数`LEAD`和`CONNECT_BY`,通过递归连接来实现列转行。 ```sql -- PL/SQL 方法 ...

Global site tag (gtag.js) - Google Analytics