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?
3 svar · 561 visningar · startad av Gildebrand
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?
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
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.
Bumpar tråden lite nu :)
jag försökte med max(cast(teacher_id ad nvarchar(max))) men det funkade inte heller :(