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

MS SQL - Moment 22?


Kristianstad

Rekommendera Poster

Kristianstad

Hejsan,

 

Kör MSSQL, en databashanterare som jag inte är särskilt van vid.

 

[color="#0000ff"]SELECT[/color] varchar, [color="#0000ff"]AVG[/color](int), text [color="#0000ff"]FROM[/color] tabell [color="#0000ff"]GROUP BY[/color] varchar

Har för att göra det enklare för er döpt kolumnerna till de datatyper de har.

 

Felmeddelandet efter denna SQL-fråga blir "Column 'text' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."

 

Jahaja, tänkte jag. Då får jag väl lägga till text i GROUP BY ->

[color="#0000ff"]SELECT[/color] varchar, [color="#0000ff"]AVG[/color](int), text [color="#0000ff"]FROM[/color] tabell [color="#0000ff"]GROUP BY[/color] varchar, text

 

Felmeddelandet efter denna SQL-fråga blir "The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator."

 

 

Vad gör jag fel? Varför ger den dessa felmeddelanden?

 

Tack på förhand!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Länk till kommentar
Dela på andra webbplatser

Vad gör jag fel? Varför ger den dessa felmeddelanden?

Inget fel, de datatyperna kan helt enkelt inte hanteras av Group By. För att komma runt det får du konvertera fältet till varchar först:

 

SELECT varchar, AVG(int), CAST(text AS varchar) FROM tabell GROUP BY varchar, CAST(text AS varchar)

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Hur mycket data ska du lagra i fältet som har typen text? Är det under 8000 tecken är varchar() bättre och dessutom fungerar alla SQL-funktioner med det, utan att krångla med typkonverteringar.

 

 

 

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...