집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 MySQL의 SUBSTRING_INDEX 함수를 복제하는 방법은 무엇입니까?
MySQL에서 SQL Server로 쿼리를 마이그레이션할 때 일반적으로 사용되는 MySQL 함수에 해당하는 SQL Server를 찾아야 하는 경우가 많습니다.
MySQL의 SUBSTRING_INDEX() 함수는 지정된 구분 기호의 발생을 기반으로 주어진 문자열에서 하위 문자열을 검색합니다. 구문은 다음과 같습니다.
SUBSTRING_INDEX(str, delim, count)
예:
SELECT SUBSTRING_INDEX('www.somewebsite.com','.',2);
이렇게 하면 'www.somewebsite'가 반환됩니다.
SUBSTRING_INDEX()의 기능을 복제하기 위해 T-SQL에서 실행 가능한 옵션 중 하나는 XQuery의 조합입니다. 및 스칼라 함수:
CREATE FUNCTION dbo.SUBSTRING_INDEX ( @str NVARCHAR(4000), @delim NVARCHAR(1), @count INT ) RETURNS NVARCHAR(4000) WITH SCHEMABINDING BEGIN DECLARE @XmlSourceString XML; SET @XmlSourceString = (SELECT N'<root><row>' + REPLACE( (SELECT @str AS '*' FOR XML PATH('')) , @delim, N'</row><row>' ) + N'</row></root>'); RETURN STUFF ( (( SELECT @delim + x.XmlCol.value(N'(text())[1]', N'NVARCHAR(4000)') AS '*' FROM @XmlSourceString.nodes(N'(root/row)[position() <= sql:variable("@count")]') x(XmlCol) FOR XML PATH(N''), TYPE ).value(N'.', N'NVARCHAR(4000)')), 1, 1, N'' ); END GO
사용 예:
SELECT dbo.SUBSTRING_INDEX(N'www.somewebsite.com', N'.', 2) AS Result;
출력:
Result --------------- www.somewebsite
위 내용은 SQL Server에서 MySQL의 SUBSTRING_INDEX 함수를 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!