webForumDet fria alternativet

First i SQL-Server2008

Databaser & SQL

3 svar · 561 visningar · startad av Gildebrand

Medlem sedan juni 2009920 inlägg
Frågan#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?

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

Medlem 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 :(

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)