On Sat, 07 Jun 2003 13:07:12 +0200, Ryan Dahl wrote:
> 1: "Der var engang "
> 2: "en lille and der "
> 3: "svømmede i "
> 4: "dammen."
>
> Og jeg så gerne vil lave en forespørgsel, som kombinerer
> tekststrengene og returnerer indholdet i én post.
I følge ISO SQL:1999 er "||" sammenkædningsoperator:
--------------------
select _____ || _____ from ...;
Dette virker da også i PostgreSQL og Oracle, se fx. PostgreSQL:
test=> select 'Der var engang ' || 'en lille and, der '
test-> || 'svømmede i ' || 'dammen.' as output;
output
-----------------------------------------------------
Der var engang en lille and, der svømmede i dammen.
(1 row)
I følge
http://dbazine.com/gulutzan3.html understøttes ||-operatoren også
af IBM.
I følge O'reillys "SQL in a Nutshell" findes der ifølge en SQL-standard
også funktionen CONCATENATE, der virker som følger:
CONCATENATE(expression || expression)
Den funktion kan jeg dog ikke lige finde noget produkt, der understøtter,
og jeg kan heller ikke se den nævnt i noget af det SQL-standard-materiale,
jeg har adgang til.
Hvor det ikke virker:
---------------------
MySQL mener at det er federe, at || er synonymt med "OR". Suk. Men ifølge
http://www.sams.com/catalog/article.asp?product_id={CB2B04C4-F816-4D4D-B918-079EA18F3682}&element_id={EF85072E-D11E-4E0E-9A82-A8D43ADCED08}
kan den indstilles til at følge standarden på dette område. Jeg ved
ikke lige hvordan. MySQL har i øvrigt deres selvopfundne CONCAT-funktion,
som er beskrevet i deres manual.
Udviklerne af MS SQL har valgt, at "+" i stedet skal bruges som
concatination operator.
I øvrigt:
---------
Hvad skal du bruge det til? Hvis det har med søgning i tekster at gøre, så
undersøg, om dit databaseprodukt understøtter "fuldtekst" søgninger.
/Troels