SQL - Byta namn på resultatet som AS för kolumner

Permalänk
Medlem

SQL - Byta namn på resultatet som AS för kolumner

Hej,
Man kan ju ändra namn på kolumn genom 'AS', men går det att ändra på resultaten också?

T.ex. om en tabell visar resultat på 1 till 10, att man vill att alla med 1 ska heta apa, och 2 ska heta gris, osv.

Tack på förhand

Visa signatur

Intel NUC8i5BEH - Iris Plus 655, i5 8259U 2,3GHz
MSI GE620DX-291NE - GT 555M, i5 2410M 2,3GHz
iPad Mini 4 & Macbook early 2011

Permalänk
Medlem

Hur menar du ändra resultatet? Vill du göra faktiskt ändringar i databasen eller vill du att resultatet i tabellen ska ha rubriken "apa"?

SELECT col1 as 'apa', col2 as 'gris' FROM table;
Ger dig ju

apa gris -------------------- resultat resultat resultat resultat

Vill du ändra namnet på kolumnerna är det alter table du ska kika på.

Permalänk
Medlem

Du menar att värdet ska ändras?
Beroende på databasspråk finns en del olika sätt att lösa det på.
Antingen en case, eller replace(), och sen om du vill spara det måste du använda en update annars kommer det bara att gälla din specifika fråga.

Kolla in w3schools, enkla och bra tips

Permalänk
Medlem

Oracle har decode och sql/oracle har iif eller case

Permalänk
Vila i frid

update tabell set kolumn1 = 'apa' where kolumn1 = '1'

Permalänk
Hedersmedlem
Skrivet av aaaaa:

Hej,
Man kan ju ändra namn på kolumn genom 'AS', men går det att ändra på resultaten också?

T.ex. om en tabell visar resultat på 1 till 10, att man vill att alla med 1 ska heta apa, och 2 ska heta gris, osv.

Tack på förhand

Jag hade gjort en komplementtabell med de strängarna och joinat in den tabellen i svaret.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Aaaaah det menas att tabellen innehåller någon slags index som ska ersättas med ett egentligt värde när det visas?
Då hade jag gjort som giplet.

Eller än hellre, inte gjort det i SQL-änden alls utan i vad som nu ska konsumera datan.

Permalänk
Medlem

Exempel:
select namn, tele from kontaktlista

Alla resultat under namn ska bara ersättas till annat värde för stunden, ingen update i databasen alltså.
Att vissa namn ska visas som annat namn istället.

Tack på förhand

Ska undersöka hur man gör komplementtabell

Tack

Visa signatur

Intel NUC8i5BEH - Iris Plus 655, i5 8259U 2,3GHz
MSI GE620DX-291NE - GT 555M, i5 2410M 2,3GHz
iPad Mini 4 & Macbook early 2011

Permalänk
Hedersmedlem
Skrivet av aaaaa:

Exempel:
select namn, tele from kontaktlista

Alla resultat under namn ska bara ersättas till annat värde för stunden, ingen update i databasen alltså.
Att vissa namn ska visas som annat namn istället.

Tack på förhand

Ska undersöka hur man gör komplementtabell

Tack

Är det bara tio möjliga värden i tabellen så kan man nog skapa upp den "i minnet" direkt i SELECT-satsen eller möjligtvis genom att bygga en stored procedure. Är det många värden så hade jag skapat en tabell i databasen. Det är en helt vanlig tabell med två kolumner, en integer som är det tal du vill ersätta och en sträng som är texten du vill visa.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Hedersmedlem
Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Varför gör ni det så svårt för han? Case räcker gott och väl... https://www.w3schools.com/sql/sql_case.asp

Visa signatur

Bättre än din.
Tagga mig för svar i trådar.

Permalänk
Medlem
Skrivet av gwingis:

Varför gör ni det så svårt för han? Case räcker gott och väl... https://www.w3schools.com/sql/sql_case.asp

Det är osnyggt, speciellt som hans exempel är en telefonbok där du antagligen kommer behöva gå in och ändra det här ofta. Då är det betydligt enklare att ändra översättningen i en tabell och joina på det än att behöva uppdatera din SQL.

Permalänk
Medlem
Skrivet av Kamouflage:

Det är osnyggt, speciellt som hans exempel är en telefonbok där du antagligen kommer behöva gå in och ändra det här ofta. Då är det betydligt enklare att ändra översättningen i en tabell och joina på det än att behöva uppdatera din SQL.

Beror ju helt på vad det är, verkar som det mesta som skrivs här är skoluppgifter så då är en case-sats bäst.

Visa signatur

Bättre än din.
Tagga mig för svar i trådar.

Permalänk
Medlem

Det är arbetsrelaterat och vi ändrar inget i databasen, bara read only därifrån.
Tackar, det fungerar med CASE

Tack så mycket för hjälpen

Visa signatur

Intel NUC8i5BEH - Iris Plus 655, i5 8259U 2,3GHz
MSI GE620DX-291NE - GT 555M, i5 2410M 2,3GHz
iPad Mini 4 & Macbook early 2011