SQL Tips

 

[SQL Server] 「,」カンマ(COMMA)区切りのデータをテーブル(TABLE)に変換する方法

[SQL Server] 「,」カンマ(COMMA)区切りのデータをテーブル(TABLE)に変換する方法

 

SQL SERVER 2016以上のバージョン

DECLARE @Str varchar(100)

SET @Str = 'A,B,C,D'

 

SELECT * FROM STRING_SPLIT(@Str,',')

 

SQL SERVER 2014以下のバージョン

以下の関数を作成して利用する必要があります。

CREATE FUNCTION [dbo].[fnStringSplit]

(

@Str VARCHAR(MAX)

, @Separator CHAR(1)

)

RETURNS @RESULT TABLE(Value VARCHAR(MAX))

AS

BEGIN     

DECLARE @SeparatorPosition int = CHARINDEX(@Separator, @Str )

DECLARE @Value VARCHAR(MAX), @StartPosition int = 1

 

IF @SeparatorPosition = 0  

BEGIN

INSERT INTO @RESULT VALUES (@Str)

RETURN

END

     

SET @Str = @Str + @Separator

 

WHILE @SeparatorPosition > 0

BEGIN

SET @Value = SUBSTRING(@Str , @StartPosition, @SeparatorPosition- @StartPosition)

 

IF( @Value <> ''  ) 

INSERT INTO @RESULT VALUES(@Value)

   

SET @StartPosition = @SeparatorPosition + 1

SET @SeparatorPosition = CHARINDEX(@Separator, @Str , @StartPosition)

END    

     

RETURN

END

GO

 

実行方法

SELECT * FROM dbo.fnStringSplit('a,b,c,d', ',')
このエントリーをはてなブックマークに追加
2018-05-29 17:27:27   122

コメント

[SQL Server] 暗号化、復号化 / ENCRYPTBYPASSPHRASE / DECRYPTBYPASSPHRASE

-.日付:2014-02-28   カテゴリ : -   閲覧数:5633

[SQL Server] 「,」カンマ区切りで結果を返す

-.日付:2018-05-29   カテゴリ : -   閲覧数:77

[SQL Server] SSDT for Visual Studio 2017 offline(オフライン)installer

-.日付:2017-12-26   カテゴリ : -   閲覧数:279

[SQL Server] リンクサーバーのリストを取得する方法 - sp_linkedservers

-.日付:2017-01-16   カテゴリ : -   閲覧数:638

[SQL Server] ガチャ(GACHA)システムを作ろう!

-.日付:2016-08-18   カテゴリ : -   閲覧数:468

Copyright © 2015 INNOYA.COM All rights reserved. RSS