WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Replace i T-SQL (https://www.wn.se/forum/showthread.php?t=4702)

Robert 2004-11-29 12:41

Hmmm, finns det något smidigt sätt att replacea text i SQL? Såg att regular expressions inte går att göra i tsql (på ett smidigt sätt). Det jag måste göra är att ersätta alla numeriska förekomster till '' för att få en kolumn där datat är sorterbart enligt mina kriterier. Som jag gör nu så nästlar jag 10st replace satser, men det ser ju inte vackert ut. Finns det andra sätt??


Kod:

SELECT
 * * *blablabla,
 * * *blebleble,
 * * *REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(T.path,'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''),'0','') as Sortorder
FROM
 * * *...etc...


esset 2004-11-29 13:36

Vill du överallt replacea 0-9 till text?

Eller missade jag poängen nu :lol:

Robert 2004-11-29 14:45

Citat:

Originally posted by esset@Nov 29 2004, 14:36
Vill du överallt replacea 0-9 till text?

Eller missade jag poängen nu :lol:

Jag vill ta bort alla förekomster av 0-9 i vissa tabelldata

esset 2004-11-29 14:55

Då har jag ingen bra lösning iom att replace är replace(varifrån ska det bytas, vad ska bytas, till) typ.

eg0master 2004-11-29 14:56

Du kan ju alltid skapa en funktion i databasen för at slippa se den fula koden i din selectsats...

Robert 2004-11-29 15:44

Citat:

Originally posted by eg0master@Nov 29 2004, 15:56
Du kan ju alltid skapa en funktion i databasen för at slippa se den fula koden i din selectsats...
Mja, jag har inga problem med att titta på den :) men den ser bara så "ooptimal" ut...

esset 2004-11-29 15:51

Om du gör en funktion som först kollar numren och kör din replace utanför då?

replace(fromString,whatString,toString)

Sen en funktion som bara tilldelar fromString och whatString hela tiden?

Blir väll samma utgång antar jag, att den kollar försig. Hehe.

Robert 2004-11-30 10:02

Hmmm, jo, jag får nog behålla mina 10 nästlade replace satser...

freakalis 2004-12-02 16:31

Jag är ganska ny på det här med t-sql men borde du inte kunna göra en while loop och lägga in replace där istället. Ser väl lite snyggare ut.

eg0master 2004-12-02 17:39

Citat:

Originally posted by freakalis@Dec 2 2004, 17:31
Jag är ganska ny på det här med t-sql men borde du inte kunna göra en while loop och lägga in replace där istället. Ser väl lite snyggare ut.
ja det kan man ju göra om man vill gå via en temptabell istf att returnera allt direkt... Knappast lämpligt.

En sak som slog mig dock... varför inte replaca bort 0-9 i PHP (motsvarande)? I det färdiga resultatet? Eller måste du sortera på kolumnen (eftersom den heter SortOrder tänkte jag)?


Alla tider är GMT +2. Klockan är nu 03:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson