Thread: Is there an easy way to normalize-space with given string functions
Hi, i am looking for something like $ SELECT btrim(replace(' too many spaces! ', '\s+',' '), ''); too many spaces i searched the function list and tried to combine to or more functions, but i miss a replace function which uses regular expressions. Do i have to write my own function or did i miss something? trimming is well supported at the start and end of string, but no trimmin in the middle seems to be possible. kind regards janning
Janning Vygen <vygen@gmx.de> writes: > i searched the function list and tried to combine to or more > functions, but i miss a replace function which uses regular > expressions. There isn't one in the SQL standard. Most people who need one write a one-liner function in plperl or pltcl. (Mind you, I don't know why we don't offer a built-in one --- the needed regex engine is in there anyway. I guess no one has gotten around to getting agreement on a syntax.) regards, tom lane
Am Freitag, 23. April 2004 04:34 schrieb Tom Lane: > Janning Vygen <vygen@gmx.de> writes: > > i searched the function list and tried to combine to or more > > functions, but i miss a replace function which uses regular > > expressions. > > There isn't one in the SQL standard. Most people who need one write a > one-liner function in plperl or pltcl. Thank you. > (Mind you, I don't know why we don't offer a built-in one --- the needed > regex engine is in there anyway. I guess no one has gotten around to > getting agreement on a syntax.) My suggestion: Syntax: substitute(string text, from text, to text); Example: substitute(' too many spaces ', '\s+', ' '); Result: ' too many spaces ' But maybe its a bad idea to create new function names... kind regards janning