0

sql server 查询的问题。

我尝试创建一个查询来搜索句子中的每个单词。单词由空格分隔。

结果包含值包含每个单词而不是至少 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