SQL Server에서 함수를 만드는 방법

함수를 사용하여 SQL에서 단어를 필터링하는 방법을 알려주세요.

설명하는 데 어려움을 겪고 있으므로 예를 들어 보겠습니다:

ID       |       WebsiteName      |
-----------------------------------
1        |      www.yahoo.com     |
2        |      www.google.com    |
3        |      www.youtube.com   |

제가 원하는 것은 웹사이트의 이름을 얻는 방법입니다. 다음과 같은 출력을 가진 레코드를 선택하고 싶습니다. 레코드에서 'www.' 및 '.com' 을 제거하는 방법.

ID      |      WebsiteName
--------------------------    
1       |        yahoo

도와주셔서 감사합니다. :D

질문에 대한 의견 (1)
해결책

이건 어때요?

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

를 클릭한 다음 사용합니다:

SELECT ID, dbo.StripWWWandCom (WebsiteName)
FROM dbo.YourTable .....

물론 이 방법은 시작 부분의 www.와 끝 부분의 .com만 제거할 뿐 다른 것은 제거하지 않는다는 점에서 **심하게 제한적입니다(따라서 smtp.yahoo.com과 같은 다른 호스트 머신 이름이나 .org, .edu, .de 등과 같은 기타 인터넷 도메인에서는 작동하지 않습니다).

해설 (2)

이 함수는 &'.&' 문자 사이의 모든 것을 가져옵니다. www.somesite.co.uk&quot]와 같이 더 복잡한 URL에서는 작동하지 않습니다. 이상적으로는 이 함수가 문자의 인스턴스 수를 확인하고 그에 따라 하위 문자열을 선택하는 것이 좋습니다.

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
해설 (0)

작은 해킹을 할 수 있습니다. T-SQL 함수를 사용할 수 있습니다. 이걸 사용해보세요:

SELECT ID, PARSENAME(WebsiteName, 2)
FROM dbo.YourTable .....
해설 (0)

그 대신 사용할 수 있습니다 햄릿 코비안 복귀시킴 방지하기 위한 언급한 바 있는 버그

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
해설 (0)

이렇게 하면 작동합니까 대부분의 웹 사이트 이름:

id '선택, 역동기화 (페르세나미 (역동기화 (웹시테나미), 2) 에서 dbo. 유르터블. '

해설 (0)