このディレクトリの索引

# 出典 :: #241 # SELECT した全レコードの特定カラムを文字列連結したものを得る方法はありますか? # # SELECT C FROM T # # とやったときに AAA、BBB、CCC といった値が得られる時、AAABBBCCC のような 1つの値が欲しいです。 # さらにそれらの間に任意の区切り文字を入れて AAA:BBB:CCC のような値を得ることはできるでしょうか。 'SELECTした全レコードのN番目カラムを文字列連結したものを得る'(_述語名/_引数の数,_N番目,_連結した文字列) :- 'SELECTした全レコードのN番目カラムを'(_述語名/_引数の数,_N番目,_解ならび), 文字列連結したもの(_解ならび,_連結した文字列). 'SELECTした全レコードのN番目カラムを'(_述語名/_引数の数,_N番目,_解ならび) :- 'レコードのN番目カラムを'(_述語名/_引数の数,_N番目,P,_引数ならび), findall(C,( 'SELECT C FROM T'(P,_N番目,_引数ならび,C)),_解ならび). 'レコードのN番目カラムを'(_述語名/_引数の数,_N番目,P,_引数ならび) :- length(_引数ならび,_引数の数), P =.. [_述語名|_引数ならび]. 'SELECT C FROM T'(P,_N番目,_引数ならび,C) :- call(P), nth1(_N番目,_引数ならび,C). 文字列連結したもの(_解ならび,_連結した文字列) :- atomic_list_concat(_解ならび,_連結した文字列).