問題(私の質問を説明するために大幅に単純化されています):
Postgres では、テーブルの 3 つの列をビューの 1 つの列に結合しようとしていますが、必要のないときに ipaddresses の末尾にスラッシュ表記が追加されています (注:スラッシュ表記は IP アドレスの末尾にはありませんそもそも私のテーブルで)。
私がやっていること:
私のテーブルには、「inet」タイプの「ipaddress」という列があります。
私のテーブルには、「テキスト」タイプの「firstname」という列があります。
私のテーブルには、「整数」型の「年齢」という列があります。
ビューで次の sql ステートメントを使用して、これらの 3 つの列を 1 つに結合しようとしています。
SELECT (thetablename.ipaddress || thetablename.firstname || thetablename.age)
AS personal_details
FROM thetablename
これはすべて完全に機能し、3 つの列を 1 つにマージしますが、ipaddresses については、以下に示すように末尾にスラッシュ表記を追加します。
私が得ている出力:
-------------------------
personal_details
-------------------------
192.168.0.199/32 Dave 65 <-- as you can see it is adding /32 but i do not want it to
192.168.0.100/32 Paul 56
192.168.0.121/32 Lucy 28
IPアドレスの末尾に「/32」スラッシュ表記を追加することを防ぐことはできないようです。
タイプを明示的に指定しようとしましたが、これは効果がありません:
SELECT (thetablename.ipaddress::inet || thetablename.firstname::text || thetablename.age::integer)
AS personal_details
FROM thetablename
私が見落としている明らかな何かがあるに違いありませんが、それが何であるかを理解することはできません.