---
title: "Skapa ny kolumn utifrån två existerande"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/123118-skapa-ny-kolumn-utifrån-två-existerande"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "CokeLight"
published: "2005-02-23T16:41:25.000Z"
updated: "2005-02-25T06:51:42.000Z"
replies: 9
views: 514
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/123118-skapa-ny-kolumn-utifrån-två-existerande"
---

# Skapa ny kolumn utifrån två existerande

## #1 — CokeLight, 2005-02-23T16:41Z

Hejsan,

Tabellen har en foto (string) kolumn vars värde ska bestå av förnamn och efternamn kolumnerna, så att slutvärdet blir fornamn_efternamn.jpg

Jag har sökt lite men får inte ihop nåt ändå... provade nedanstående SQL som inte funkar alls :) 

```
INSERT INTO personal(id, Sortering, foto) 
SELECT DISTINCT id, Sortering,
(SELECT f_namn
UNION SELECT '_' 
e_namn
UNION SELECT '.jpg' FROM personal p2 WHERE p2.id = p1.id)
FROM personal AS p1
```

 

Nån som har nåt förslag...? :) Dessutom så får id kolumnen inte var null och jag får heller inte ha duplicate values...

Permalänk: https://www.webforum.nu/p/123118

## #2 — LarsG, 2005-02-23T17:38Z

Varför behöver du lagra det i tabellen? 

```
select f_namn || '_' || e_namn || '.jpg' from personal
```

Permalänk: https://www.webforum.nu/p/1559030

## #3 — CokeLight, 2005-02-23T18:42Z

aha, är det så man skriver.. ska prova senare ikväll.. tack så mycket.. du har hjälpt många gånger.. :)

jo, jag drog mig för det ganska länge för jag ville lägga det i code-behind filen i en datagrid men kom inte på syntaxen riktigt.. däremot var det inga problem att få in kolumndata (från databasen) o lägga in den i datagriden.. så det är lite därför.. så jag tänkte att det går snabbare att lägga det i databasen tills vidare men så körde jag fast där också :)

Hör av mig sen... tack igen

Permalänk: https://www.webforum.nu/p/1559058

## #4 — LarsG, 2005-02-23T18:51Z

Jo, en detalj. Jag använde \|\| för att konkatenera strängar men syntaxen för detta kan skilja sig mellan olika databashanterare.

Permalänk: https://www.webforum.nu/p/1559063

## #5 — Nöff, 2005-02-23T23:41Z

äre SQL-server så är det + man använder

Permalänk: https://www.webforum.nu/p/1559181

## #6 — CokeLight, 2005-02-24T22:29Z

Hejsan.. :) det kom en massa annat emellan.. kunde inte prova förrän nu... tack för inläggen... jo precis.. jag kör sql-server.. har för mig att oracle kör med union för att konkatenera?

så jag ändrade i alla fall till: 

```
INSERT INTO personal(id, Sortering, foto) 
SELECT DISTINCT id, Sortering,
(SELECT DISTINCT f_namn + '_' + e_namn + '.jpg' FROM personal p2 WHERE p2.id = p1.id)
FROM personal AS p1
```

 

... får då felet att 

> Violation of PRIMARY KEY constraint 'PK_xyz'. Cannot insert duplicate key in object 'personal'.
> The statement has been terminated.

 

måste man köra nån subquery som förhindrar duplicates..? hur var det.. nåt med count \< 1 eller varför blir det så...?

Permalänk: https://www.webforum.nu/p/1559629

## #7 — @nders, 2005-02-25T06:05Z

> har för mig att oracle kör med union för att konkatenera?

Nej, UNION är något helt annat, och inte specifikt för Oracle. Man använder CONCAT för att konkatenera.

Permalänk: https://www.webforum.nu/p/1559658

## #8 — CokeLight, 2005-02-25T06:28Z

a jo, nä jag menade att jag sett att man kan använda union för att konkatenera in vanliga ord i sin query.. fast jag kanske har fel? jag har för mig att jag gjort det nån gång innan jag visste det här som LarsG och Nöff berättade om \|\| och + ... typ om man inte jobbar med en extern applikation och vill att det i själva output fönstret ska stå

Olle tjänar
\-------------
80 kr

där man då kan selecta fram "olle tjänar" union det som ger 80 union select "kr"... fast det är förstås vanskligt :)

Läste alldeles nyss att det var Oracle som ju körde med \|\|

Permalänk: https://www.webforum.nu/p/1559663

## #9 — @nders, 2005-02-25T06:31Z

Man kan säkert använda både CONCAT och \|\|.

med UNION slår du ihop resultatet av två (eller fler) SQL-frågor till ett resultatset.

```
SELECT 'Foo' AS Bar FROM Foo
UNION
SELECT 'Bar' FROM Bar
```

Resulterar i två poster:

```
Bar
---------
Foo
Bar
```

Permalänk: https://www.webforum.nu/p/1559667

## #10 — CokeLight, 2005-02-25T06:51Z

a så var det ja.. tackar.. :)

Permalänk: https://www.webforum.nu/p/1559668

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/123118-skapa-ny-kolumn-utifrån-två-existerande
