我的sql表中有一个“name”列。在我的SQL查询中,我想获取列“name”是我输入字符串的子串的所有记录。
为了exapmle,用户输入“我的名字是Davivd”,然后我想获取姓名为David的所有记录。 P.S:用户可以输入类似“大卫在这里”的内容。
任何知道的人请告诉我。 Thanku
答案 0 :(得分:1)
您的问题有点不清楚,但如果您有名称列,则可以使用CHARINDEX
函数将其作为任何字符串的一部分找到:
示例:
DECLARE @TABLE TABLE (ID INT IDENTITY(1,1), NAME VARCHAR(100))
INSERT INTO @TABLE(NAME)
SELECT 'DAVID' UNION ALL
SELECT 'GOLIATH' UNION ALL
SELECT 'DAVE' UNION ALL
SELECT 'MARTIN'
SELECT *
FROM @TABLE
WHERE CHARINDEX(NAME,'DID YOU EVER READ THE STORY ABOUT DAVID AND GOLIATH?') > 0
SELECT *
FROM @TABLE
WHERE CHARINDEX(NAME,'MY FAVOURITE MOVIE DIRECTOR IS MARTIN SCORCESE. I LOVE HIS GLASSES.') > 0
答案 1 :(得分:1)
一个简单的观点是:
DECLARE @x VARCHAR(255)
SET @x = 'My name is David'
SELECT a FROM tablex WHERE @x LIKE '%' + tablex.name + '%'
这反转了@ shortspider的回应。
答案 2 :(得分:0)
尝试:SELECT * FROM table_name WHERE name LIKE '%David%'