Kom ihåg mig?
Home Menu

Menu


Replace i T-SQL

Ämnesverktyg Visningsalternativ
Oläst 2004-11-29, 12:41 #1
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
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...
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 13:36 #2
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
Vill du överallt replacea 0-9 till text?

Eller missade jag poängen nu :lol:
esset är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 14:45 #3
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
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
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 14:55 #4
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
Då har jag ingen bra lösning iom att replace är replace(varifrån ska det bytas, vad ska bytas, till) typ.
esset är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 14:56 #5
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Du kan ju alltid skapa en funktion i databasen för at slippa se den fula koden i din selectsats...
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 15:44 #6
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
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...
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-29, 15:51 #7
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
esset esset är inte uppkopplad
Medlem
 
Reg.datum: Sep 2004
Inlägg: 73
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.
esset är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-30, 10:02 #8
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Hmmm, jo, jag får nog behålla mina 10 nästlade replace satser...
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-02, 16:31 #9
freakaliss avatar
freakalis freakalis är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 224
freakalis freakalis är inte uppkopplad
Medlem
freakaliss avatar
 
Reg.datum: Oct 2004
Inlägg: 224
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.
freakalis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-12-02, 17:39 #10
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
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)?
eg0master är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:35.

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