SQL QUERY SEARCH EACH WORDS,SPLIT SPACE

时间:2012-06-08 18:47:05

标签: sql-server-2005 search

sql server query的问题。

我尝试创建一个查询来搜索一个句子上的每个单词。单词被空格分割。

结果包含值包含每个字不至少为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或功能。

我看着我身边的“有”和“进入”或其他东西。

任何提示坦克

和好的周末

0 个答案:

没有答案