我想将FirstName
和LastName
合并到一个名为'FULL NAME'
的列中,并在SQL中使用LIKE进行搜索。
示例1:
名字:米兰 姓氏:Patel
FullName:Milan Patel
搜索:Like '%SomeText%'
示例2:
标题:“会议:工作的实用替代方案。”
搜索:我想在给定字符串中搜索整个单词。例如:工作应该返回上述标题。
这是我到目前为止所拥有的。
SELECT
CE.Title, CC.FirstName + ' ' + CC.LastName AS FullName
FROM
EntryTable CE
JOIN
UserTable CC ON CE.EntryId = CC.USerId
WHERE
CC.FirstName LIKE 'n%'
我慢慢地在那里。搜索工作正常。
SELECT
CE.Title
FROM
EntryTable CE
JOIN
UserTable CC
ON
CE.EntryId = CC.USerId
WHERE
CC.FirstName + ' ' + CC.LastName LIKE 's%'
但它只搜索以's'
开头的名称,我想搜索名称的开头,结尾,包含条件。我怎么能这样做呢。请帮忙
答案 0 :(得分:16)
您可以将LIKE
与连续列值一起使用,如下所示
WHERE
CC.FirstName + ' ' + CC.LastName LIKE 's%'
但它只搜索以's'开头的名字,我想搜索 名称起始,结束,包含条件。我该怎么办? 那。请帮忙
然后你必须在搜索字符串之前和之后使用%
,如下所示
WHERE
CC.FirstName + ' ' + CC.LastName LIKE '%s%'
答案 1 :(得分:5)
你可以使用concat
SELECT CE.Title, concat(CC.FirstName , ' ' , CC.LastName) AS FullName
FROM EntryTable CE
JOIN UserTable CC
ON CE.EntryId = CC.USerId
WHERE
concat(CC.FirstName , ' ' , CC.LastName) LIKE 'n%'
OR CC.FirstName LIKE 'n%' OR CC.FirstName LIKE '%n'
OR CC.LastName LIKE 'n%' OR CC.LastName LIKE '%n'
^^--// (1). ^^--// (2)
(1)在你搜索的第一个字符串中查找姓氏。
(2)在你搜索的字符串的末尾找到姓氏。
(3)在字符串中间找到姓氏'%n%'
答案 2 :(得分:5)
您不能在ALIAS
子句上使用WHERE
,因为在SQL操作顺序中,WHERE
子句在SELECT
子句之前执行。
更好地使用完整的连接是WHERE
子句
WHERE CC.FirstName + ' ' + CC.LastName LIKE 'n%'
如果您不想使用它,请将查询包装在子查询中,以便您可以使用ALIAS
,
SELECT *
FROM
(
SELECT CE.Title, CC.FirstName + ' ' + CC.LastName AS FullName
FROM EntryTable CE JOIN UserTable CC
ON CE.EntryId = CC.USerId
) sub
WHERE sub.FullName LIKE 'n%'
答案 3 :(得分:1)
SELECT some_column_name FROM some_table where firstname + ' ' + lastname LIKE 'some_value'
不需要FullName
列。
答案 4 :(得分:1)
其中CONCAT(CC.FirstName,'',CC.LastName)喜欢“%n%”
答案 5 :(得分:0)
将它们与WHERE子句结合使用,并带有两个%符号。