请帮帮我,如何使用函数过滤SQL中的单词?
如果我解释它,我会很难,所以我举个例子:
ID | WebsiteName |
-----------------------------------
1 | www.yahoo.com |
2 | www.google.com |
3 | www.youtube.com |
Run Code Online (Sandbox Code Playgroud)
我想要的是,如何获得网站的名称.我想用这样的输出选择记录.如何删除'www.' 和'.com'在记录中.
ID | WebsiteName
--------------------------
1 | yahoo
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.:d
mar*_*c_s 109
这个怎么样?
CREATE FUNCTION dbo.StripWWWandCom (@input VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
DECLARE @Work VARCHAR(250)
SET @Work = @Input
SET @Work = REPLACE(@Work, 'www.', '')
SET @Work = REPLACE(@Work, '.com', '')
RETURN @work
END
Run Code Online (Sandbox Code Playgroud)
然后使用:
SELECT ID, dbo.StripWWWandCom (WebsiteName)
FROM dbo.YourTable .....
Run Code Online (Sandbox Code Playgroud)
当然,这是严格限制的,因为它只会剥夺www.
在开始和.com
结束时-没有别的(所以它不会对其他主机的名称,如工作smtp.yahoo.com
与其他互联网领域,例如.org
,.edu
,.de
等)
小智 13
这个得到了"."之间的一切.字符.请注意,这不适用于更复杂的网址,例如"www.somesite.co.uk".理想情况下,该功能会检查"."的实例数.字符并相应地选择子字符串.
CREATE FUNCTION dbo.GetURL (@URL VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
DECLARE @Work VARCHAR(250)
SET @Work = @URL
SET @Work = SUBSTRING(@work, CHARINDEX('.', @work) + 1, LEN(@work))
SET @Work = SUBSTRING(@work, 0, CHARINDEX('.', @work))
--Alternate:
--SET @Work = SUBSTRING(@work, CHARINDEX('.', @work) + 1, CHARINDEX('.', @work) + 1)
RETURN @work
END
Run Code Online (Sandbox Code Playgroud)
我可以给一个小黑客,你可以使用T-SQL功能.试试这个:
SELECT ID, PARSENAME(WebsiteName, 2)
FROM dbo.YourTable .....
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用替代品来避免Hamlet Hakobyan提到的错误
CREATE FUNCTION dbo.StripWWWandCom (@input VARCHAR(250))
RETURNS VARCHAR(250)
AS BEGIN
DECLARE @Work VARCHAR(250)
SET @Work = @Input
--SET @Work = REPLACE(@Work, 'www.', '')
SET @Work = Stuff(@Work,1,4, '')
SET @Work = REPLACE(@Work, '.com', '')
RETURN @work
END
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
308369 次 |
最近记录: |