Transact-SQL:如何标记字符串?

use*_*676 8 sql t-sql

我希望能够从文本框中标记化输入字符串以进行查询.示例:用户在文本框中输入"abc xyz 123".我想做这个:

SELECT * FROM database WHERE Name contains "abc" AND "xyz" AND "123"
-- as opposed to containing "abc xyz 123"
-- please ignore my sql syntax, I am an absolute beginner
Run Code Online (Sandbox Code Playgroud)

谢谢.

And*_*y M 6

使用字符串拆分功能(例如,像这样),你可以这样:

SELECT t.*
FROM atable t
  INNER JOIN dbo.Split(@UserInput, ' ') s ON t.Name LIKE '%' + s.Data + '%'
Run Code Online (Sandbox Code Playgroud)