0
私は、 'data_sent'列から何らかの値を取り出し、この値で 'registry'列を更新しようとしています。しかし、問題を得る。以下各行の列を別の列の部分文字列値で更新するにはどうすればよいですか?
問合せ:
update can_data
set registry = (SELECT cast(SUBSTR(split_part(data_sent,
'registry>', 2), 1, 26) as numeric)
as registry FROM can_data);
SQLエラー:
ERROR: more than one row returned by a subquery used as an expression
********** Error **********ERROR: more than one row returned by a subquery used as an expression SQL state: 21000
サブクエリは複数のレコードを返します。あなたのデータはわかりませんが、これらの値が等しい場合、サブクエリのDISITNCTが役立ちます。新しいレジストリ値として本当に設定したいものについて考える必要はありません。TOP 1は汚い解決策かもしれません –
Didあなたはhttps://stackoverflow.com/questions/21048955/postgres-error-more-than-one-row-returned-by-a-subquery-used-as-an-expressionをチェックしますか?それは同じ問題のようなものです。 –
そのような計算された値を格納することは、一般的には悪い考えです。 (データの不一致が発生します)。代わりにビューを作成します。 – jarlh