2016-08-11 2 views
0

Ich führe das unten stehende Skript aus und das Ergebnis des Bereichsfelds ist 'Familienrecht'. Die Anwendung, die die Ausgabe liest, sucht jedoch nach einem zweistelligen Ergebnis. z.B. "Familienrecht" sollte FL sein. Wie kann ich das Skript ändern, um dies zu tun?Wie man ein Feldergebnis von zwei Wörtern in zwei Buchstaben ändert

declare @s varchar(100)='(FILE'; 
select clientid 
     ,ClientSort as ClientName 
     ,'Y' as Enabled 
     ,'N' as HIPPA 
     ,matternum 
     ,case 
      when charindex(@s,[description])>0 
      then left(cast([description] as varchar(max)),charindex(@s,[description])-1) 
      else [description] 
     end as MatterName 
     ,'Y' as Enable 
     ,'N' as HIPPA 
     ,areaoflaw 
    from matters 
order by Clientid 
     ,matterid 
; 
+0

Was die anderen sind mögliche Werte? Sind es immer zwei durch ein Leerzeichen getrennte Wörter? Willst du immer die ersten Buchstaben dieser beiden Wörter? – Blorgbeard

Antwort

2

Fügen Sie eine CASE Anweisung hinzu. Zum Beispiel

SELECT .... 
CASE 
WHEN areaoflaw = 'Family Law' then 'FL' 
WHEN areaoflaw = 'Admiralty Law' then 'AL' 
WHEN areaoflaw = 'Criminal Law' then 'CL' 
WHEN areaoflaw = 'Patent Law' then 'PL' 
END as areaoflaw.... 
+0

Danke, ich habe das obige hinzugefügt, aber einen booleschen Fehler bekommen. Wie füge ich eine Join-Syntax hinzu, um das zu beheben? – GrizzleBear

0

die Werte sind alle zwei Wörter Unter der Annahme, und Sie wollen immer die Anfangsbuchstaben dieser Wörter, können Sie eine einfache Kombination von substring und charindex verwenden:

select 
    ..., 
    (
     substring(areaoflaw,1,1) + 
     substring(areaoflaw,charindex(' ', areaoflaw)+1, 1) 
    ) as areaoflaw 
+0

Vielen Dank. Wie richten Sie das für die unten, die einzelne Wörter sind? Arbeiter Comp | WC | Y Criminal | CR | Y Familienrecht | FL | Y Großunternehmen | CB | Y persönliche Verletzung | PI | Y Litigation | LI | Y Immobilienangelegenheiten | EM | Y Verschiedenes | MI | Y Rechtsmittel | AP | Y Immobilien | RE | Y – GrizzleBear

+0

Das sieht so aus, als ob die Zwei-Buchstaben-Codes für jeden Wert unterschiedlich abgeleitet sind 'case' Aussage wie in @ Roberts Antwort. Wenn Sie diese Werte in einer * SQL-Tabelle * gespeichert haben, brauchen Sie natürlich nur einen 'Join'. – Blorgbeard

Verwandte Themen