この機能は、お使いのカンマ区切りのリストを取得し、テーブルを返すだけのようになりますSTRING_SPLIT()
私はSQL Server 2016でしか使用できないと思っています。そして、あなたの条件に基づいてテーブルにINNER JOIN
だけを渡します。私は通常、この関数の結果にテーブル変数を設定して再利用することができます。
ALTER FUNCTION [dbo].[ufn_split_string]
(
@RowData NVARCHAR(MAX),
@Delimeter NVARCHAR(MAX)
)
RETURNS @RtnValue TABLE
(
ID INT IDENTITY(1,1),
DataRow NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @Iterator INT
SET @Iterator = 1
DECLARE @FoundIndex INT
SET @FoundIndex = CHARINDEX(@Delimeter,@RowData)
WHILE (@FoundIndex>0)
BEGIN
INSERT INTO @RtnValue (DataRow)
SELECT
Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, @FoundIndex - 1)))
SET @RowData = SUBSTRING(@RowData,
@FoundIndex + 1,
LEN(@RowData))
SET @Iterator = @Iterator + 1
SET @FoundIndex = CHARINDEX(@Delimeter, @RowData)
END
INSERT INTO @RtnValue (DataRow)
SELECT Data = LTRIM(RTRIM(@RowData))
RETURN
END
GO
string_split関数を使用して、単一の列テーブルに分割し、を区切り文字として使用します。このリンクhttps://msdn.microsoft.com/en-gb/library/mt684588.aspx あなたは、次のコマンドを使用して、データベースの互換性レベルを変更することができます チェック:DATABASEデータベース名SET COMPATIBILITY_LEVELをALTER = 130 – Mocas
が今まであなたをしましたこれに対する解決策を見つけるか?与えられた入力で希望する出力の例を与えることができないのですか? – scsimon