2013-11-21 5 views
0

Мне нужно проанализировать первую часть имени файла как имени документа с несколькими исключениями.Parsing File Name

FileName::. Тест FileName Сервис, ООО - 11-30-12 ASW.pdf»

update Test_Base_Form 
set [Document Name]=LEFT([Document Name],CHARINDEX('-',[Document Name]) - 1) 
where docid={sys docid} 

Который работал хорошо, давая мне результаты действий службы производства ООО я столкнулся с вопросами позже и обнаружил, что у меня были какие-то имена файлов, как:. «Тест-FileName непроизводственные - 1-12-13.pdf»

Чтобы устранить эту проблему я добавил пробел перед и после «-»

update Test_Base_Form 
set [Document Name]=LEFT([Document Name],CHARINDEX(' - ',[Document Name]) - 1) 
where docid={sys docid} 
.

Новая проблема, что я могу сделать o когда имя файла имеет пробел только после или до «-», это отбрасывает мои результаты, сокращая имя коротким. Можно ли проверить каждое из этих исключений, прежде чем возвращать значение?

ответ

0
update Test_Base_Form 
set [Document Name] = 
    case 
     when [Document Name] like '% - %' then 
      LEFT([Document Name],CHARINDEX(' - ',[Document Name]) - 1) 
     when [Document Name] like '%- %' then 
      LEFT([Document Name],CHARINDEX('- ',[Document Name]) - 1) 
     when [Document Name] like '% -%' then 
      LEFT([Document Name],CHARINDEX(' -',[Document Name]) - 1) 
     else 
      [Document Name] 
    end 
where docid={sys docid} 
+0

+1 Благодарю вас за ответ, он отлично работает. –