0

SQLサーバークエリの質問。

センテンスのすべての単語を検索するためのクエリを作成しようとしています。単語はスペースで区切られます。

結果には、値に少なくとも1ではないすべての単語が含まれる行が含まれます。

サンプル:

DECLARE @DATATABLE TABLE (ID INT,COL1 VARCHAR(MAX))
INSERT INTO @DATATABLE (ID,COL1) VALUES (1,'ALPHA')
INSERT INTO @DATATABLE (ID,COL1) VALUES (2,'ALPHA BETA')
INSERT INTO @DATATABLE (ID,COL1) VALUES (3,'ALPHA BETA CHARLIE')
INSERT INTO @DATATABLE (ID,COL1) VALUES (4,'ALPHA BETA CHARLIE DELTA')

DECLARE @TESTTABLE AS TABLE (ID INT,COL1 VARCHAR(MAX))

INSERT INTO @TESTTABLE (ID,COL1) VALUES (1,'ALPHA')             -- RETURN 1,2,3,4
INSERT INTO @TESTTABLE (ID,COL1) VALUES (2,'ALPHA BETA')            -- RETURN 2,3,4
INSERT INTO @TESTTABLE (ID,COL1) VALUES (3,'BETA CHARLIE ALPHA')    -- RETURN 3,4
INSERT INTO @TESTTABLE (ID,COL1) VALUES (4,'BETA DELTA')            -- RETURN 4
INSERT INTO @TESTTABLE (ID,COL1) VALUES (5,'CHARLIE')           -- RETURN 3,4

SELECT * FROM @DATATABLE

DECLARE @I AS INT
SET @I = 1

DECLARE @COUNTLINE AS INT
SET @COUNTLINE = (SELECT MAX(ID) FROM @TESTTABLE )

DECLARE @CURRENTVALUE AS VARCHAR(MAX)

WHILE(@I <=  @COUNTLINE)
BEGIN

    SET @CURRENTVALUE = (SELECT COL1 FROM @DATATABLE WHERE ID = @I)

    --  **  TODO    **
    -- QUERY SHOULD RETURN EVERY LINE CONTAINING EACH WORD OF THE CURRENT TEST VALUE
    SELECT * FROM @DATATABLE WHERE COL1 LIKE @CURRENTVALUE

    SET @I = @I + 1
END

私は最初のテストを行ったところに「TODO」と書きます(それがすべきでないことを見ました)。

SPまたは関数を作成できません。

私は自分の側で「with」や「in」などを探します。

ヒントのためのタンク

そして良い週末

4

0 に答える 0