Announcement

Collapse
No announcement yet.

T-SQL, Verwendung mehrerer CASE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • T-SQL, Verwendung mehrerer CASE

    Helau zusammen

    Bei der Verwendung von mehreren Case-Anweisungen innerhalb einer T-SQL-stored-Procedure scheint syntaktisch etwas nicht zu stimmen, was blos?:

    Code:
    SELECT		RNr, WNr, 
    		case 			
    		when charindex(',',Temp)  > 0  then
      			convert(int,left(Temp,convert(int,charindex(',',Temp))-1))
    		end AS Expr1,
    		case
     			when charindex(',',Temp)  > 0
      			then  convert(int,substring(Temp,convert(int,charindex(',',Temp))+1,6)
    		end as Expr2
    FROM         dbo.qry_Irgendeine
    Die Case-Anweisungen funktionieren einzeln, aber nicht "in Reihe".
    Angemerkt wird ein Fehler "in der Nähe" des ersten END.
    Ein Komma befindetn sich dort aber, fehlt da sonst noch irgendwas?


    Besten Dank

  • #2
    Man kann CASE sogar ineinander schachteln, du hast nur auf das ELSE vergessen. Ein komplettes CASE muss immer so aussehen:
    select CASE WHEN .... THEN ... ELSE .... END

    bye,
    Helmut

    Comment


    • #3
      Moin
      Die Frage /Lösung habe ich dir bereits hier http://www.tutorials.de/forum/relati...erer-case.html beantwortet

      Also nochmal:
      Der Fehler liegt eindeutig 'in der Nähe' des LETZTEN end.... weil nämliche eine abschliessende Klammer ')' fehlt!
      Code:
      ...then  convert(int,substring(Temp,convert(int,charindex(',',Temp))+1,6))
      end 
      ...
      Originally posted by hwoess
      ...Ein komplettes CASE muss immer so aussehen:
      select CASE WHEN .... THEN ... ELSE .... END
      Auf den ELSE-Zweig kann durchaus verzichten, der ist nicht unbedingt zwingend (siehe entsprechende Hilfe im T-SQL-OnlineBuch)

      Comment


      • #4
        Stimmt, man lernt doch nie aus

        Comment

        Working...
        X