공통 스크립트 - 지정된 문자열을 여러 줄 데이터로 버스트
17209 단어 문자열
--==============================================
--
--==============================================
ALTER FUNCTION dbo.ufn_SplitString
(
@SourceSql VARCHAR(MAX) ,
@StrSeprate VARCHAR(10)
)
RETURNS @temp TABLE (C1 VARCHAR(MAX) )
AS
BEGIN
DECLARE @i INT
SET @SourceSql = RTRIM(LTRIM(@SourceSql))
SET @i = CHARINDEX(@StrSeprate, @SourceSql)
WHILE @i >= 1
BEGIN
INSERT @temp
VALUES ( LEFT(@SourceSql, @i - 1) )
SET @SourceSql = SUBSTRING(@SourceSql, @i + 1,
LEN(@SourceSql) - @i)
SET @i = CHARINDEX(@StrSeprate, @SourceSql)
END
IF @SourceSql <> '\'
INSERT @temp
VALUES ( @SourceSql )
RETURN
END
GO
--=====================================================
-- :
SELECT * FROM dbo.ufn_SplitString('ABDC,BDF,DEF,,',',')
--
SELECT * FROM dbo.ufn_SplitString('ABDC,BDF,DEF,,',',')
WHERE C1<>''
버전 2
--===============================================================
--
CREATE FUNCTION [dbo].[SplitString]
(
@Input NVARCHAR(MAX), --input string to be separated
@Separator NVARCHAR(MAX)=',', --a string that delimit the substrings in the input string
@RemoveEmptyEntries BIT=1 --the return value does not include array elements that contain an empty string
)
RETURNS @TABLE TABLE
(
[Id] INT IDENTITY(1,1),
[VALUE] NVARCHAR(MAX))
AS
BEGIN
DECLARE @Index INT, @Entry NVARCHAR(MAX)
SET @Index = CHARINDEX(@Separator,@Input)
WHILE (@Index>0)
BEGIN
SET @Entry=LTRIM(RTRIM(SUBSTRING(@Input, 1, @Index-1)))
IF (@RemoveEmptyEntries=0) OR (@RemoveEmptyEntries=1 AND @Entry<>'')
BEGIN
INSERT INTO @TABLE([VALUE]) VALUES(@Entry)
END
SET @Input = SUBSTRING(@Input, @Index+DATALENGTH(@Separator)/2, LEN(@Input))
SET @Index = CHARINDEX(@Separator, @Input)
END
SET @Entry=LTRIM(RTRIM(@Input))
IF (@RemoveEmptyEntries=0) OR (@RemoveEmptyEntries=1 AND @Entry<>'')
BEGIN
INSERT INTO @TABLE([VALUE]) VALUES(@Entry)
END
RETURN
END
--===============================================================
--
DECLARE @str1 VARCHAR(MAX), @str2 VARCHAR(MAX), @str3 VARCHAR(MAX)
SET @str1 = '1,2,3'
SET @str2 = '1###2###3'
SET @str3 = '1###2###3###'
SELECT [VALUE] FROM [dbo].[SplitString](@str1, ',', 1)
SELECT [VALUE] FROM [dbo].[SplitString](@str2, '###', 1)
SELECT [VALUE] FROM [dbo].[SplitString](@str3, '###', 0)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
비슷한 이름의 Attribute를 많이 만들어 삭제하는 Houdini사용 소프트웨어는 Houdini16.5입니다 배열에서는 애트리뷰트의 보간이 잘 동작하지 않는 것과 AttributeCreateSOP 노드에서 Size가 4를 넘는 애트리뷰트를 작성해도 값이 조작할 수 없어 의미가 없...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.