On Wed, 2002-08-14 at 12:45, Sean Chittenden wrote:
> > > > > Well, they aren't separate fields so you can't ORDER BY domain.  The dot
> > > > > was used so it looks like a schema based on dbname.
> > 
> > IMHO it should look like an user in domain ;)
> 
> Agreed, but there is something to be said for doing a sort of users
> per domain.  This wouldn't be an issue, I don't think, if there was a
> split_before() and split_after() like functions.
> 
> # SELECT split_before('[EMAIL PROTECTED]','@'), split_after('[EMAIL PROTECTED]', '@');
>  ?column? |  ?column?
> ----------+------------
>  user     | domain.com
> 
> What would you guys say to submissions for a patch that would add the
> function listed above? 

create function split_before(text,text) returns text as '
 select case when (strpos($1,$2) > 0)
             then substr($1,1,strpos($1,$2)-1)
             else $1
              end as usename
' language 'SQL';

create function split_after(text,text) returns text as '
 select case when (strpos($1,$2) > 0)
             then substr($1,strpos($1,$2)+1)
             else ''''
              end as usedomain
' language 'SQL' ;

hannu=# select split_before('me@somewhere','@'),
split_after('me@somewhere','@');
 split_before | split_after 
--------------+-------------
 me           | somewhere
(1 row)

-------------
Hannu


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to