【发布时间】:2010-06-16 12:02:36
【问题描述】:
我的数据库中有一个用户表,其中包含 FirstName 和 LastName 两列。 现在在我的前端有一个文本框可以从这个表中过滤掉用户。假设我以输入参数“@SEARCHKEYWORD”的形式从前端获取该输入。我在下面创建了一个示例:
DECLARE @Test TABLE
([ID] INT IDENTITY,
[FNAME] NVARCHAR(100),
[LNAME] NVARCHAR(100)
)
INSERT INTO @Test( FNAME, LNAME )
SELECT 'John','Resig' UNION ALL
SELECT 'Dave','Ward' UNION ALL
SELECT 'Peter','Smith' UNION ALL
SELECT 'Dave','Smith' UNION ALL
SELECT 'Girija','Acharya' UNION ALL
SELECT 'Devendra', 'Gujel' UNION ALL
SELECT 'Arjit', 'Gupta'
DECLARE @SEARCHKEYWORD NVARCHAR(100)
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
即到目前为止,我已经想到了这个查询来过滤掉行,但它没有给出想要的结果:
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
以下是我需要的以下输入所需的输出:
<pre></pre>
--当 @SEARCHKEYWORD='John Resig' --Desired OUTPUT:包含'John','Resig'的行
--当@SEARCHKEYWORD='Ac' --Desired OUTPUT:包含'Girija','Acharya'的行
--当@SEARCHKEYWORD='Smith' --Desired OUTPUT:包含'Peter','Smith'和'Dave','Smith'的行
--当@SEARCHKEYWORD='g' --Desired OUTPUT:包含'Devendra'、'Gujel'和'Arjit'、'Gupta'的行
--当@SEARCHKEYWORD='Smith' --Desired OUTPUT:包含'Peter','Smith'和'Dave','Smith'的行
【问题讨论】: