Subject: String Concatenation does not work.

Started by Nonameover 27 years ago3 messagesgeneral
Jump to latest
#1Noname
leshan@ugsolutions.com

I tried to place a query like "SELECT * FROM x WHERE a = b || c" where
a, b and c are text columns in table x.
Unfortunately all I get are Syntax Errors pointing to the

concatenation

operator. This happens under 6.3.<latest> with psql and jdbc.
Am I just tripping over a bug or do have to use some kind of escaping?

Regargs,
Holger Klawitter

Well in version 6.4 this works:
SELECT * FROM x WHERE a = b or a=c;

Hope that helps.
J.L.

#2Holger Klawitter
holger.klawitter@gmx.de
In reply to: Noname (#1)
[GENERAL] Subject: String Concatenation DOES work.

I tried to place a query like "SELECT * FROM x WHERE a = b || c" where

Well in version 6.4 this works:
SELECT * FROM x WHERE a = b or a=c;

Ahem, in PostQuel the || Operator stands for string concatenation not
for the logical or. Anyhow, I found out that under 6.4.2 the following
construct seems to work, however, all brackets are neccessary:
SELECT * from x WHERE a ~~ (( '%' || b ) || '%' );

Thanks anyhow
Holger Klawitter
--
Holger Klawitter
holger.klawitter@gmx.de http://wwwmath.uni-muenster.de/~holger

#3Bruce Momjian
bruce@momjian.us
In reply to: Holger Klawitter (#2)
Re: [GENERAL] Subject: String Concatenation DOES work.

I tried to place a query like "SELECT * FROM x WHERE a = b || c" where

Well in version 6.4 this works:
SELECT * FROM x WHERE a = b or a=c;

Ahem, in PostQuel the || Operator stands for string concatenation not
for the logical or. Anyhow, I found out that under 6.4.2 the following
construct seems to work, however, all brackets are neccessary:
SELECT * from x WHERE a ~~ (( '%' || b ) || '%' );

|| is the SQL standard way to do it. I realize it seems confusing.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026