0

テラデータを使用しています。関数、UDF、ストアド プロシージャへのアクセス不可

テーブル

id  attribute
1   strength, power
2   ring, wig, puff
3   strength, ring
4   puff, wig
5   power

属性の数を数えたい

id  att_number
1   2
2   3
3   2
4   2
5   1

これどうやってするの?

4

4 に答える 4

3

indexand関数のみを使用するとsubstring、以下に示すように、最大​​ 12 個の属性をチェックする入れ子になった case ステートメントが必要になります。最大 12 個の属性をカウントできるようにするには、case ステートメントをさらにネストする必要があります。現在、最大 2 個の属性までしかカウントできません。[注: mytext=attributes]

SELECT id, mytext
,case 
when index(mytext, ',')= 0 then 0
when index(mytext, ',')>0 then  
                                    case
                                    when index(substring(mytext,  index(mytext, ','), length(mytext)), ',')=0 then 1
                                    when index(substring(mytext,  index(mytext, ','), length(mytext)), ',')>0 then 2
                                    end
end
from mydb.sd_test
order by id;
于 2013-10-31T15:56:36.777 に答える
2
SELECT colname
,CHARACTERS(TRIM(colname)) -CHARACTERS(TRIM(OREPLACE(colname,',',''))) +1
 SAMPLE 100  FROM tablename
于 2013-12-16T14:51:50.147 に答える