webForumDet fria alternativet

First i SQL-Server2008

3 svar · 561 visningar · startad av Gildebrand

GildebrandMedlem sedan juni 2009920 inlägg
#1

Hejsan!

Jag har förstått att det i TSQL finns en funktion, First, som man kan använda för att få ut den första kolumnen. Men den tycks inte finnas med i SQL-Server 2008, hur kommer det sig, och finns det något man kan göra istället?

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Finns verkligen First i SQL Server? Access möjligtvis, men SQL Server?

Anyhoo så är First ekvivalent med TOP 1 så:

select first c from t order by i

...är samma sak som:

select top 1 c from t order by i
GildebrandMedlem sedan juni 2009920 inlägg
#3

Jag har kikat lite på Top men jag vet inte riktigt hur jag skulle kunna använda det i min fråga.

Såhär ser fråga ut just nu

declare @listcol nvarchar(max)
declare @query nvarchar(max)
select @listcol = STUFF(( Select distinct 
'],[' + LTRIM(str(Subject_ID))
from Subjects
FOR XML PATH('')
), 1, 2, '') + ']'

set @query =
'SELECT * 
FROM (  
SELECT Elev_ID, Subject_ID, Teacher_ID  
FROM Subjects) myTemp  
PIVOT (count(Teacher_ID) FOR Subject_ID 
IN (' +@listcol+')) AS pvt
order by Elev_ID'
execute (@query)

Det är count(Teacher_ID) som jag vill byta ut så att jag får ut det första värdet istället.

GildebrandMedlem sedan juni 2009920 inlägg
#4

Bumpar tråden lite nu :)

jag försökte med max(cast(teacher_id ad nvarchar(max))) men det funkade inte heller :(

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)