7

私はこのようなことをしようとしています:

select char_length(select text_field from table where key = 1)

これは機能しません。クエリの戻り値の型は文字列やテキスト変数ではなくテーブルであるため、私は推測します。

selectステートメントからの結果のrow、colを指定する方法はありますか?

編集:char_lengthは関数であると言うのを見落としました。

4

4 に答える 4

7

クエリの結果を関数に渡すときは、クエリを角かっこで囲むだけです。

select char_length((select text_field from table where key = 1));

角かっこの外側のセットは関数用であり、内側のセットはクエリを結果に変換します。

この構文はpostgresに固有のものではなく、すべてのSQLサーバーに適用されます。

このリンクは、上記のコードが正しく実行されていることを示しています(@Fahim Parkarに感謝します)


Although, you could re-factor your query to not require this syntax, nevertheless this is how you "pass the result of a query to a function".

于 2012-06-22T19:01:41.167 に答える
2
select char_length(text_field) from "table" where key = 1
于 2012-06-22T18:57:17.450 に答える
0

そのはず

select char_length(text_field) from "table" where key = 1

また、あなたのテーブル名はではないと思いますtable

于 2012-06-22T18:53:02.170 に答える
0

Assuming key is a primary key or unique key the first example below will work. It works only if the sub-query returns only 1 row. The second example will work for 1 or more rows.

select char_length((select text_field from table where key = 1));
select char_length(text_field) from table where key = 1;
于 2012-06-22T19:13:57.707 に答える