Ответ Марка дал мне большую часть того, что мне было нужно, но мне пришлось идти с patIndex
, а не charIndex
, потому что иногда символы, отличные от пробелов, отмечают концы слов моих данных. Здесь я использую '%[ /-]%'
для поиска пробела, косой черты или тире.
Select race_id, race_description
, Case patIndex ('%[ /-]%', LTrim (race_description))
When 0 Then LTrim (race_description)
Else substring (LTrim (race_description), 1, patIndex ('%[ /-]%', LTrim (race_description)) - 1)
End race_abbreviation
from tbl_races
Результаты ...
race_id race_description race_abbreviation
------- ------------------------- -----------------
1 White White
2 Black or African American Black
3 Hispanic/Latino Hispanic
Предостережение: это для небольшого набора данных (федеральные категории отчетов о гонках США); Я не знаю, что произойдет с производительностью, когда увеличится до огромных цифр.