Just nu i M3-nätverket
Gå till innehåll

SQL fråga


Andreas Heintze

Rekommendera Poster

Andreas Heintze

Kan man få ut en autouppräknande kolumn från ett SELECT i SQL på nått sätt? 1,2,3,4...

 

Kan man manipulera utdate från en tabellkolumn med SQL? Typ om det står i en tabellkolumn:

HPI3245234

HPC345w334

IBM23423t4

 

Kan man få bort de tre första bokstäverna med SQL?

 

/Andreas

Länk till kommentar
Dela på andra webbplatser

Carlos Cadalso

Svar på fråga 2. Tror de kan vara svårt att göra med en SQL sats, men du kan i t.ex ASP, PERL manipulera strängar så att du kappar en del av den. Fast det kan gå att göra med en Store Procedure, inte säker.

Länk till kommentar
Dela på andra webbplatser

Carlos Cadalso

I VBScript (läs ASP) finns det en fuktion som heter Mid.

 

Mid(string,start[,length])

Alltså string är den sträng du vill bearbetta, start från vilken tecken i strängen du börjar och length är längden på sträng och den är optional dvs du behöver inte ange den.

 

Exempel:

string="salsa"

Mid (string,3,1) returnerar "s"

Mid (string,3) returnerar "sa"

Länk till kommentar
Dela på andra webbplatser

Andreas Heintze

Skulle helst vilja klara av det direkt i Access.

Lyckades göra det i en MySQL databas med följande:

SELECT SUBSTRING(product_sku,3) FROM product;

 

Funkade alldeles utmärkt, varför kan man inte köra samma i Access??

Länk till kommentar
Dela på andra webbplatser

Carlos Cadalso

Att det funkar i MySQL och inte i Access berör på olika ODBC drivers och hur de tolkar olika kommander. I Access kan du använda Left, Rigth och Mid fuktionerna i ställe

Länk till kommentar
Dela på andra webbplatser

Andreas Heintze

Tack, upptäckte att det heter mid i Access istället för Substring som det heter i t.ex. MySQL... knäppt med dessa ständiga variationer!!

 

Mitt andra problem är docj inte löst:

 

Jag vill slippa gå in i tabellen som skapats av tabellfrågan i efterhand och manuellt lägga till en kolumn som är en räknare.

Kan man på nått sätt få frågan i Access att skapa detta autouppräknande fält?

Räknare är ju en datatyp, så frågan är ju egentligen om man kan styra vilka datatyper

varje kolumn från en fråga blir direkt i SQL'en??

 

Ska ha de autouppräknade fälten i nästa fråga jag kör, då jag använder den nyskapade tabellen

med räknarfältet för att skapa ytterligare en tabell...

 

Mvh Andreas

Länk till kommentar
Dela på andra webbplatser

Carlos Cadalso

Alltså när skapar en post i en tabell (säg Tabell A) vill du veta värde på kolumn som är en räknare för i sin tur skapa en ny tabell (säg tabell 111) med hjälp av detta värde?

Länk till kommentar
Dela på andra webbplatser

Andreas Heintze

Jag vill på nått sätt kunna köra en fråga (SQL) i Access där en av kolumnerna som skapas av frågan är en räknare med värde 1,2,3,4,5... etc.

 

Kan man göra detta i SQL?

SELECT ??? AS product_id, product_name

FROM tabell_1;

 

 

Kan man skriva nått där (???) som genererar detta?

SELECT 1+?? kanske?

Länk till kommentar
Dela på andra webbplatser

Carlos Cadalso

Hmn.. Nu fattar jag ingenting. Tror att de blir svårt att kunna skapa någonting med en SELECT fråga. SELECT satser gör egentiglen så att hella tabellen söks igenom efter nån kriterium. Så det blir svårt att försöka göra nån med en SELECT sats. Om du förstör mig rätt Om jag kör en INSERT sats då händer nån i tabellen d.v.s skapas en ny rad iom detta kan ( vet jag) hur ska jag hämta info från tabellen ( jag har nån sort referens) som jag inte har med SELECT. Kanske jag kan ge dig en svar on jag vet vad vill du uppnå , du kan skicka en e-mail om du vill.

Länk till kommentar
Dela på andra webbplatser

i oracle kan man göra så här:

 

select rownum, andra_kolumner

from tabell_namn

where ....osv;

 

erumä?

Länk till kommentar
Dela på andra webbplatser

Andreas Heintze

Låter precis som nått jag behöver!

Tyvärr verkar inte rownum funka i Access, finns det nån motsvarighet??

Länk till kommentar
Dela på andra webbplatser

Börje Carlsson

Svar på fråga1:

Alt 1)

Varför inte skapa an identity-column och låta sql server räkna upp?

 

Alt 2)

SELECT MAX(column_name) from ... ger högsta värdet.

 

Svar på fråga2:

Använd SUBSTRING (dokumenterad i BOL)

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...