[解決済み] PostgreSQL。ERROR: 演算子が存在しない: integer = character varying
2023-01-30 01:24:48
質問
ここでは、例として以下のようなビューを作成しようとしています。
例です。
create view view1
as
select table1.col1,table2.col1,table3.col3
from table1
inner join
table2
inner join
table3
on
table1.col4 = table2.col5
/* Here col4 of table1 is of "integer" type and col5 of table2 is of type "varchar" */
/* ERROR: operator does not exist: integer = character varying */
....;
注:同じクエリがSQL Serverで実行されましたが、postgreSQLで上記のエラーが発生しました。
どのように解決するのですか?
何が間違っているのかを正確に教えてくれていると思います。integerとvarcharを比較することはできません。PostgreSQLは厳格で、魔法のような型キャスティングはしてくれません。SQLServerは自動的にタイプキャスティングを行うのでしょう(これは悪いことです)。
この2つの異なる獣を比較したい場合、キャスト構文を使用して一方を他方にキャストする必要があります。
::
.
このような内容で
create view view1
as
select table1.col1,table2.col1,table3.col3
from table1
inner join
table2
inner join
table3
on
table1.col4::varchar = table2.col5
/* Here col4 of table1 is of "integer" type and col5 of table2 is of type "varchar" */
/* ERROR: operator does not exist: integer = character varying */
....;
注目すべきは
varchar
のタイプキャストに注目してください。
また、タイプキャストはおそらくそのカラムのインデックスを使用不能にするかもしれず、パフォーマンス上のペナルティがあり、これはかなり悪いことに注意してください。さらに良い解決策は、2 つの列型のうち 1 つを永久に変更して、もう 1 つの列型と一致させることができるかどうかを確認することです。文字通り、データベースの設計を変更するのです。
または、カスタム.NET を使用して、キャストされた値にインデックスを作成することもできます。 不変の 関数を使用して、キャストされた値のインデックスを作成することもできます。しかし、これも最適とは言えないかもしれません (しかし、ライブキャストよりはましです)。
関連
-
PostgreSQLのテーブルをパーティション分割する3つの方法
-
postgresqlのjsonbデータの問い合わせと変更方法
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] textとvarcharの違い(character varying)
-
[解決済み] PostgresでInsert文のUUIDを生成する?
-
[解決済み] PostgreSQL で "use database_name" コマンドを使用する。
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み】PostgreSQLがインデックス付きカラムに対してシーケンシャルスキャンを実行するのはなぜですか?
-
[解決済み] PostgreSQLにデータベースが存在するかどうかをシェルで確認する
-
[解決済み】psql: FATAL: ロール "postgres" が存在しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
Postgresqlへのリモートアクセスの設定方法(ファイアウォールの設定またはOFFが必要です。)
-
postgresql いくつかのメソッドは、要約の重複するデータを削除する
-
PostgreSQLがバキュームテーブルの情報を収集する必要があることを発見する方法
-
[解決済み] psql'に非対話的にパスワードを指定するには?
-
[解決済み] PostgreSQLの場合。PostgreSQLですべてのテーブルのOWNERを同時に変更する
-
[解決済み] psqlの代替出力フォーマット
-
[解決済み] Postgres で、あるデータベースから別のデータベースにテーブルをコピーする
-
[解決済み] PostgreSQLの特定のスキーマのデータベースに格納されているすべての関数のリストを取得するにはどうすればよいですか?
-
[解決済み] PostgreSQLでカラムのデフォルト値を変更するにはどうすればよいですか?