私はテーブルを持っています:
c1|c2|c3|c4
-----+--+--+----
a b c 10
a a b 20
c a c 10
b b c 10
c b c 30
入力が3つの文字列/テキストである関数を作成したい. ) カラムアップ。しかし、 bacまたはcabの星座がある場合、abc 10 に一致します。bccのような行がある場合、 cbbのような行にはなりません。すべての対戦はユニークです。
string_to_array(text, text) を使用するのが最善だと思います。
疑似コードをいくつかまとめましたが、SQL での記述方法がわかりません。ロジックも間違っているかもしれません。
function (x,y,z)
res = 0
x_array = string_to_array(x, ' ')
y_array = string_to_array(y, ' ')
z_array = string_to_array(z, ' ')
foreach(x_item in x_array)
foreach(y_item in y_array)
foreach(z_item in z_array)
if (c1 = (x_item || y_item || z_item ) && c2 = (x_item || y_item || z_item ) && c3 = (x_item || y_item || z_item ))
res++
編集
- まず、例の表に誤りがありました。行abcとcbaがありました。それはできません。abc = cba ! 各行は一意である必要があります。
- 例: 3 つのテキスト入力 abc | 紀元前| c
- 各要素と各要素: abc、acc、bbc、bcc、cbc、ccc
- abc = 10; acc ( cacと同じ) = 10; bbc = 10; bcc ( cbcと同じ) = 30; cbc = 30; ccc (一致なし) = 0; 結果 = 90