Перевернуть строку

J3utajisi
Дата: 23.01.2009 08:40:34
Уважаемые знатоки помогите строку разбить по разделителям и перевернуть ее.
Разделителем может быть любой символ кроме буквы и цифры

Например из следующей строки:
"Ма11ма,!, мы2ла! раму!красным мылом"

получить следующую:
"мылом красным!раму мы2ла! Ма11ма,!,"
Добрый Э - Эх
Дата: 23.01.2009 08:55:47
1) Заменить все типы разделителей на один унифицированный (например на запятую)
2) Разбить предложение на лексемы (для этого строку нужно размножить столько раз, сколько лексем в предложении содержится)
3) Склеить лексемы в обратном порядке

Большая часть необходимых идей для решения поставленной задачи есть тут
iap
Дата: 23.01.2009 09:02:48
Была похожая тема.
Можно доработать.
iap
Дата: 23.01.2009 13:59:53
SQL2005 / SQL2008
DECLARE @S VARCHAR(100), @Delimiters VARCHAR(100);
SET @Delimiters='!,.; :=+'+CHAR(10)+CHAR(13)+CHAR(9)+CHAR(160);
SET @S='Ма11ма,!, мы2ла! раму!красным мылом';

WITH CTE(S,L) AS (SELECT REPLACE(@S,' ', CHAR(160)), LEN(@S))
 SELECT REPLACE((SELECT ''+S FROM
  (
   SELECT V.number, SUBSTRING(CTE.S,V.number,
   (
    SELECT MIN(VV.number)
    FROM CTE JOIN master.dbo.spt_values VV
    ON VV.type='P' AND VV.number BETWEEN V.number AND CTE.L+1
    AND SUBSTRING(CTE.S+LEFT(@Delimiters,1),VV.number,1) LIKE '['+@Delimiters+']'
   )-V.number)
   FROM master.dbo.spt_values V
   WHERE V.type='P' AND V.number BETWEEN 1 AND CTE.L+1
   AND SUBSTRING(LEFT(@Delimiters,1)+CTE.S,V.number,1) LIKE '['+@Delimiters+']'
   UNION ALL
   SELECT V.number, SUBSTRING(CTE.S,V.number,1)
   FROM master.dbo.spt_values V
   WHERE V.type='P' AND V.number BETWEEN 1 AND LEN(@S)+1
   AND SUBSTRING(CTE.S,V.number,1) LIKE '['+@Delimiters+']'
  ) T(N,S)
  WHERE S>''
  ORDER BY N DESC
  FOR XML PATH('')), CHAR(160),' ')
 FROM CTE;
J3utajisi
Дата: 23.01.2009 16:16:52
Спасибо большое! А проще никак нельзя?!
Гавриленко Сергей Алексеевич
Дата: 23.01.2009 16:22:42
J3utajisi
Спасибо большое! А проще никак нельзя?!
А какие у вас с этим сложности.
H2O2
Дата: 23.01.2009 16:37:55
To J3utajisi
Загляните, пожалуйста, в FAQ того ресурса,
который заставил придти Вас сюда с этим вопросом.
Вопрос 7, пункт 5а. Выделено красным.
Anddros
Дата: 23.01.2009 16:41:07
Гавриленко Сергей Алексеевич
J3utajisi
Спасибо большое! А проще никак нельзя?!
А какие у вас с этим сложности.


Я могу поведать, какие у автора топика сложности. Но не стану. Надеюсь, что и автор не станет. Потому как данные сложности надо преодолевать самостоятельно. В крайнем случае можно обратиться за 'сертифицированной' помощью. Но никак не искать решение задачи на стороне.

2 Автор.

Вы условия тестирования читали?
iap
Дата: 23.01.2009 16:42:31
J3utajisi
Спасибо большое! А проще никак нельзя?!
Предлагайте! Обсудим.
Я ведь, как сами понимаете, выбрал самое сложное решение из всех возможных. Из вредности

Но его можно ещё больше усложнить. Например, для обработки не только одной строки, а всего строкового поля таблицы.
J3utajisi
Дата: 24.01.2009 06:34:25
Простите меня. Я больше так не буду.