sql >> Database >  >> RDS >> Sqlserver

Een string omkeren (SQL Server 2005, SET BASED)

Bewerken Oorspronkelijk antwoord begreep de eis verkeerd. Ik heb een oplossing gevonden, maar de splitsing naar tekenniveau is nu helemaal niet nodig. Het kan in ieder geval wat ideeën opleveren!

WITH Strings AS
(
select 'A Student' as String
UNION ALL
select 'blah' as String
UNION ALL
select 'the quick brown fox jumped over the lazy dog' as String
),
SplitChars As
(
SELECT ROW_NUMBER() OVER (ORDER BY number) AS number, String, SUBSTRING(String,number,1) AS Ch FROM Strings
JOIN master.dbo.spt_values on number BETWEEN 1 AND LEN(String) AND type='P'
)


SELECT String,
replace(Stuff(
            (
            Select '' + Ch
            From SplitChars SC3
            WHERE SC3.String = SC.String
            Order By (SELECT COUNT(*) FROM SplitChars SC2 WHERE SC2.String = SC3.String AND SC2.Ch = ' ' AND SC2.number < SC3.number) desc, case when SC3.ch = ' ' then -1 else number end
            For Xml Path('')
            ),1, 0, ''), '&#x20;', ' ') AS Reversed
FROM SplitChars SC 
GROUP BY String

Retourneren

  • Leerling A
  • bla
  • hond lui de overgesprongen vos bruin snel de


  1. Percentage tot totaal in PostgreSQL zonder subquery

  2. SqlParameter staat geen tabelnaam toe - andere opties zonder SQL-injectieaanval?

  3. hoe te importeren uit MS Excel in MYSQL DB

  4. wat is het verschil tussen '!=' en '<>' in mysql