テラデータを使用しています。関数、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
これどうやってするの?
テラデータを使用しています。関数、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
これどうやってするの?
index
and関数のみを使用すると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;
SELECT colname
,CHARACTERS(TRIM(colname)) -CHARACTERS(TRIM(OREPLACE(colname,',',''))) +1
SAMPLE 100 FROM tablename