substr(字符串,開(kāi)始位置,截取位數(shù))
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、田陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為田陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
用上面的函數(shù)可以完成你要的判斷
如果是查詢
select case substr(字段,1,1)
when ',' then substr(字段,2,length(字段) - 1)
else 字段
end as 字段名
from 表
select 字段1||','||字段2||','||字段3 the_output from employee
只能這樣吧,這是三個(gè)字段的,你每個(gè)字段都得這么寫(xiě),||是連接符
這個(gè)用過(guò)程完成比較好,這樣的話可以寫(xiě)幾個(gè)循環(huán),然后一個(gè)循環(huán)一個(gè)循環(huán)的來(lái)做,比較好解釋和控制,而且寫(xiě)得量應(yīng)該可不大。判斷下instr(字符串,n)的位置然后進(jìn)行截取,以及判斷是否為0等,就可以進(jìn)入和跳出循環(huán)。外層則可以是一個(gè)游標(biāo)。遍歷class表。這樣就可以了。
如果硬要寫(xiě)一個(gè)sql,那么這里才幾個(gè)逗號(hào),如果逗號(hào)很大,那么可能要寫(xiě)很多的decode或者case when,而且不是十分好控制。假如有最多21個(gè)逗號(hào),那么你就要寫(xiě)22個(gè)decode。這個(gè)工作量有點(diǎn)大了吧。
寫(xiě)完后,進(jìn)行行轉(zhuǎn)列,找到username,然后用wm_concat,username合并或者用,最后在根據(jù)查到表的id和class的id進(jìn)行對(duì)應(yīng),得到查詢結(jié)果,可是似乎有點(diǎn)太麻煩了。
我嘗試用start with做,可是沒(méi)辦法實(shí)驗(yàn),不知道行不行,感覺(jué)上似乎可以,但是總覺(jué)得哪里不對(duì)。