2016-04-03 9 views
0
SELECT 

subj.SubjectID   AS [ID], 
subj.SubjectDescription AS [Subject], 
enrol.StuSubjEnrolmentID AS [IsEnrol] 


FROM [PATHWAYS].[Subjects] AS [subj] 

LEFT JOIN 
[STUDENT].[StuSubjEnrolment] AS [enrol] 
ON subj.SubjectID = enrol.SubjectID 

LEFT JOIN 
[STUDENT].[Student] AS [stu] 
ON enrol.StuID = stu.StuID 
AND stu.StuID = @stuID 

Hallo Leute, kann mir bitte jemand dabei helfen? Vielen Dank im Voraus. Ich bin da wirklich ratlos.SQL - Wenn sonst innerhalb der Rückgabewerte?

Wie kann ich diese Aussage in einer Art und Weise schreiben, dass ....

Wenn IsEnrol ist nicht null, gibt sie 0 Else gibt 1 zurück? Ich möchte, dass bestimmte Spalte zu zeigen, nur 1 oder 0

+1

versuchen Sie mit case Ausdruck – Dejan

+0

Sie möchten, dass jede Zeile IsEnrol entweder 1 oder 0 ist, wenn es NULL/nicht NULL ist? Wie kommen gespeicherte Prozeduren dazu? – iliketocode

+1

Mögliches Duplikat von [Wie führe ich ein IF ... THEN in einem SQL SELECT aus?] (Http://stackoverflow.com/questions/63447/how-to-perform-an-if-then-in-an-sql -select) –

Antwort

1

versuchen diese

SELECT 

subj.SubjectID   AS [ID], 
subj.SubjectDescription AS [Subject], 
CASE WHEN enrol.StuSubjEnrolmentID is not null then 0 else 1 end as AS [IsEnrol] 

FROM [PATHWAYS].[Subjects] AS [subj] 
LEFT JOIN [STUDENT].[StuSubjEnrolment] AS [enrol] 
ON subj.SubjectID = enrol.SubjectID 
LEFT JOIN [STUDENT].[Student] AS [stu] 
ON enrol.StuID = stu.StuID 
AND stu.StuID = @stuID 
+0

Vielen Dank. Das ist die Antwort darauf: D – DriLLFreAK100

1

Vorausgesetzt, dass Sie SQL Server 2012 oder höher verwenden, können Sie IIF funktions-

SELECT 

subj.SubjectID   AS [ID], 
subj.SubjectDescription AS [Subject], 
iif(enrol.StuSubjEnrolmentID is null,1,0) AS [IsEnrol] 


FROM [PATHWAYS].[Subjects] AS [subj] 

LEFT JOIN 
[STUDENT].[StuSubjEnrolment] AS [enrol] 
ON subj.SubjectID = enrol.SubjectID 

LEFT JOIN 
[STUDENT].[Student] AS [stu] 
ON enrol.StuID = stu.StuID 
AND stu.StuID = @stuID 

Wenn Sie verwenden eine Version von SQL Server früher als 2012, dann wäre die Case Anweisung Methode von @ Dejan87 Post die beste Lösung.