私はこのようなことをしようとしています:
select char_length(select text_field from table where key = 1)
これは機能しません。クエリの戻り値の型は文字列やテキスト変数ではなくテーブルであるため、私は推測します。
selectステートメントからの結果のrow、colを指定する方法はありますか?
編集:char_lengthは関数であると言うのを見落としました。
私はこのようなことをしようとしています:
select char_length(select text_field from table where key = 1)
これは機能しません。クエリの戻り値の型は文字列やテキスト変数ではなくテーブルであるため、私は推測します。
selectステートメントからの結果のrow、colを指定する方法はありますか?
編集:char_lengthは関数であると言うのを見落としました。
クエリの結果を関数に渡すときは、クエリを角かっこで囲むだけです。
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".
select char_length(text_field) from "table" where key = 1
そのはず
select char_length(text_field) from "table" where key = 1
また、あなたのテーブル名はではないと思いますtable
。
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;