> 데이터 베이스 > MySQL 튜토리얼 > SQL Server 2008 R2에서 Comma에 따른 문자열을 효율적으로 분할하려면 어떻게해야합니까?

SQL Server 2008 R2에서 Comma에 따른 문자열을 효율적으로 분할하려면 어떻게해야합니까?

DDD
풀어 주다: 2025-01-25 06:56:08
원래의
508명이 탐색했습니다.

How Can I Efficiently Split Comma-Delimited Strings in SQL Server 2008 R2?

SQL Server 2008 R2에서 T-SQL 문자열 분할

SQL Server 2008 R2에는 문자열 분할 기능이 내장되어 있지 않아 쉼표로 구분된 문자열 처리가 어렵습니다. 이 기사에서는 사용자 정의 기능을 사용한 강력한 솔루션을 보여줍니다.

사용자 정의 분할 기능 만들기

다음 dbo.splitstring 함수는 쉼표로 구분된 문자열을 효율적으로 분할합니다.

<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255), @pos INT;
    WHILE CHARINDEX(',', @stringToSplit) > 0
    BEGIN
        SELECT @pos = CHARINDEX(',', @stringToSplit);
        SELECT @name = SUBSTRING(@stringToSplit, 1, @pos - 1);
        INSERT INTO @returnList SELECT @name;
        SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos + 1, LEN(@stringToSplit) - @pos);
    END
    INSERT INTO @returnList SELECT @stringToSplit;
    RETURN;
END;</code>
로그인 후 복사

함수 사용법

이 기능을 사용하려면 분할할 문자열을 매개변수로 전달하면 됩니다.

<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>
로그인 후 복사

이렇게 하면 각 쉼표로 구분된 값이 별도의 행에 포함된 테이블이 생성됩니다.

| 이름 | |---|---| | 91 | | 12 | | 65 | | 78 | | 56 | | 789 |

이 사용자 정의 함수는 SQL Server 2008 R2의 제한 내에서 쉼표로 구분된 문자열을 처리하기 위한 안정적인 방법을 제공합니다.

위 내용은 SQL Server 2008 R2에서 Comma에 따른 문자열을 효율적으로 분할하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿