Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
craigwg
Posting Yak Master
154 Posts |
|
waterduck
Aged Yak Warrior
982 Posts |
Posted - 2013-05-07 : 22:17:23
|
[code]declare @str varchar(200) = 'http://74.7.11.79/search/srpcache?ei=UTF-8&p=chicken+little+2005+return+to+oz&xa=jHNvX2blkMjnRYv_BmgF4A--,1367680599&fr=yfp-t-900-s&u=http://cc.bingj.com/cache.aspx?q=chicken+little+2005+return+to+oz&d=4648654572028943&mkt=en-US&setlang=en-US&w=RZCO6PF'select substring(@str, patindex('%&p=%', @str) + 3, patindex('%=%', SUBSTRING(@str, patindex('%&p=%', @str) + 3, len(@str))) - 1)[/code]wait for better answer |
 |
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2013-05-07 : 22:51:43
|
If there is always going to be another parameter after &p in the query string, then this will workdeclare @str varchar(200) = 'http://74.7.11.79/search/srpcache?ei=UTF-8&p=chicken+little+2005+return+to+oz&xa=jHNvX2blkMjnRYv_BmgF4A--,1367680599&fr=yfp-t-900-s&u=http://cc.bingj.com/cache.aspx?q=chicken+little+2005+return+to+oz&d=4648654572028943&mkt=en-US&setlang=en-US&w=RZCO6PF'SELECT SUBSTRING(@str, CHARINDEX('&p=', @str) + 3, CHARINDEX('&', @str, CHARINDEX('&p=', @str)+1) - CHARINDEX('&p=', @str) - 3) |
 |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-05-08 : 00:17:46
|
[code]SELECT LEFT(STUFF(page_url,1,PATINDEX('%&p=%',page_url)+3,''),CHARINDEX('&',STUFF(page_url,1,PATINDEX('%&p=%',page_url)+3,'')+'&')-1)FROM table[/code]------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/https://www.facebook.com/VmBlogs |
 |
|
craigwg
Posting Yak Master
154 Posts |
Posted - 2013-05-08 : 15:13:00
|
Thanks all. I'm using Teradata so the functions are a touch different. I got it working using this:CASE WHEN page_url LIKE '%&q=%' THEN OREPLACE(SUBSTR (page_url,POSITION('&' IN page_url)+3,(POSITION('&' IN SUBSTR(page_url,POSITION('&' IN page_url)+3,1000)))+POSITION('&' IN page_url) -(POSITION('&' IN page_url)+1)),'+',' ')ENDCraig Greenwood |
 |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-05-09 : 00:21:15
|
coolfor Teradata specific helps in future, you may be better off posting questions in Teradata related forumsThis is MS SQL Server forums and we deal with Transact SQL------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/https://www.facebook.com/VmBlogs |
 |
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2013-05-09 : 01:05:31
|
^^ yep.Very good though that you got it working |
 |
|
|
|
|
|
|