반응형
SQL Server에서 함수를 만드는 방법
함수를 사용하여 SQL에서 단어를 필터링하는 방법을 도와주세요.
설명하면 힘들어서 예를 들어 보겠습니다.
ID | WebsiteName |
-----------------------------------
1 | www.yahoo.com |
2 | www.google.com |
3 | www.youtube.com |
내가 원하는 것은 웹 사이트의 이름을 얻는 방법입니다. 이와 같은 출력이있는 레코드를 선택하고 싶습니다. 'www.'를 제거하는 방법 기록에 '.com'이 있습니다.
ID | WebsiteName
--------------------------
1 | yahoo
도와 주셔서 감사합니다. :디
이건 어때?
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
등)
이것은 "."사이의 모든 것을 얻습니다. 문자. "www.somesite.co.uk"와 같은 더 복잡한 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
작은 해킹을 할 수 있고 T-SQL 기능을 사용할 수 있습니다. 이 시도:
SELECT ID, PARSENAME(WebsiteName, 2)
FROM dbo.YourTable .....
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
이것은 대부분의 웹 사이트 이름에서 작동합니다.
SELECT ID, REVERSE(PARSENAME(REVERSE(WebsiteName), 2)) FROM dbo.YourTable .....
참고 URL : https://stackoverflow.com/questions/14550486/how-to-create-a-function-in-sql-server
반응형
'developer tip' 카테고리의 다른 글
RelativeLayout에 프로그래밍 방식으로 뷰를 추가하는 방법은 무엇입니까? (0) | 2020.12.11 |
---|---|
ASP.NET MVC의 권한 부여 특성 (0) | 2020.12.11 |
팬더 그룹 별 누적 합계 (0) | 2020.12.11 |
Windows에서 npm 실행 스크립트에 대한 셸을 설정하는 방법 (0) | 2020.12.11 |
Swift beta 6-혼란스러운 링커 오류 메시지 (0) | 2020.12.11 |