我有一个名为date_list的列,它的值如下:
2014-04-11,2014-04-11,2014-04-14,2014-04-17
2014-04-13,2014-04-15,2014-04-17
你可以看到一个有四个元素,另一个有三个,但现在我想保留五个元素。我需要concat',Nil',如果它的元素小于5。 所以我期望的结果是:
2014-04-11,2014-04-11,2014-04-14,2014-04-17,Nil
2014-04-13,2014-04-15,2014-04-17,Nil,Nil
这是我的方法,但不确定元素的数量:
decode(REGEXP_COUNT(date_list,','),2,date_list||',Nil,Nil',3,date_list||',Nil',date_list)
任何建议都表示赞赏。
答案 0 :(得分:1)
试试这个
SELECT
decode(
REGEXP_COUNT (cadena,',',1,'i'),
1,cadena || ',nil,nil,nil',
2,cadena || ',nil,nil',
3,cadena || ',nil',
cadena) resultado FROM demo2;
答案 1 :(得分:1)
尝试:
replace( rpad( date_list,length(date_list) + 4-REGEXP_COUNT(date_list,','), '@' ),
'@', ',nil' )