1

次のような SQL クエリがあります。

SELECT DISTINCT(id) FROM users WHERE ...

そして、そのような結果を表示したいと思います:

user=12355
user=78949
user=9898
user=489891

基本的に "user=" を前に付けます。PostgreSQLでこれを行うことは可能ですか? で試しましSTRING_AGG('user=', DISTINCT(id))たが、 でエラーが発生しましたDISTINCT(id)。何か案が?

4

4 に答える 4

3

エラー メッセージが表示される唯一の理由は、必要な2 番目のパラメーターstring_agg()を忘れたためです。この非常に単純なクエリは機能します。

SELECT string_agg('user=' || id, E'\n')
FROM   users 
WHERE  ...

E'\n'.. 改行文字

質問にある文字列とまったく同じ行を1 行生成します。重複がある場合を除き、どちらも
必要ありません。その場合、サブクエリが必要になります。DISTINCTGROUP BYid

SELECT string_agg('user=' || id, E'\n')
FROM  (SELECT id FROM users GROUP BY id) x
于 2013-06-27T00:41:24.033 に答える
3

||文字列連結に使用できるはずです:

SELECT DISTINCT('user=' || id) 
FROM users 
WHERE ...

これも役に立つかもしれません:

http://www.postgresql.org/docs/current/static/functions-string.html

于 2013-06-26T04:03:17.187 に答える