SQL Server 2008 r2 — T-SQL LIKE или PATINDEX для соответствия символам, ДРУГИМ, чем AZ, 0–9, дефис, точка, подчеркивание и тильда

Пожалуйста, помогите мне написать Оператор PATINDEX или LIKE для соответствия символам , отличным , кроме:

  • AZ, 0-9, дефис (-), точка (.), подчеркивание (_) и тильда (~)

Я планирую чтобы использовать это в скалярной пользовательской функции с вводом nvarchar(200), который обрабатывает ввод следующим образом:

  1. Заменяет несовпадающие символы дефисом (-)
  2. Заменяет два вхождения дефиса (--) одним ( -)
  3. Удаляет дефисы в начале и конце (-)
  4. Возвращает обработанный ввод

Это будет использоваться для создания части URL-адреса, оптимизированного для SEO, например /my-seo-friendly-url-1 Я очень уверен в выполнении этой UDF, за исключением части сопоставления с образцом. уфф меня смущает! Пожалуйста помоги.

Заранее спасибо за помощь.

5
задан Chris Cannon 20 May 2012 в 16:32
поделиться