首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查询查找用户

查询查找用户
EN

Stack Overflow用户
提问于 2012-02-04 10:42:09
回答 4查看 202关注 0票数 1

我需要编写一个查询,以获得名为description的属性中的用户列表。用户名以任何格式保存在该属性中:-

  • LASTNAME
  • LASTNAMEFirstname (无空间)
  • FirstnameLastname

在这种情况下,如果我需要在该属性中搜索给定的用户列表(大约100个),我必须编写类似select * from dm_user where UPPER("description") like '%FIRSTUSER_FIRSTNAME%' OR UPPER("description") like '%SECONDUSER_FIRSTNAME%'之类的查询。

这是我可以做的更简单的方法,我讨厌写*UPPER("description") like* 100次。(请推荐标准的sql查询)。我需要在Documentum和MSSQL上运行这个查询。

我只想有这样的

{

代码语言:javascript
复制
select * from dm_user 
where UPPER("description") 
like IN ('%FIRSTUSER_FIRSTNAME%','%SECONDUSER_FIRSTNAME%');

但它在documentum}中不可用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-04 12:06:55

是否可以使用动态查询并让Server写入这些字符串100次?

代码语言:javascript
复制
--DROP TABLE #User
-- This is an EXAMPLE: keep using your names source
CREATE TABLE #User(Id int, Name varchar(50))
INSERT INTO  #User VALUES (1, 'First')
INSERT INTO  #User VALUES (2, 'Second')
-- ... and so on

DECLARE @Query nvarchar(max)
SELECT  @Query = 'SELECT * FROM DM_USER WHERE 1=0' +
        (
            SELECT  '
 OR Description LIKE ' + QUOTENAME('%' + Name + '%', '''')
            FROM    #User
            FOR XML PATH (''), TYPE
        ).value('.', 'nvarchar(max)')

PRINT   '@Query = ' + ISNULL(@Query, 'NULL')
EXEC    sp_executesql @Query

结果:

代码语言:javascript
复制
@Query = SELECT * FROM DM_USER WHERE 1=0
 OR Description LIKE '%First%'
 OR Description LIKE '%Second%'
票数 1
EN

Stack Overflow用户

发布于 2012-02-04 11:06:19

如果您想避免多次编写LIKE,并且您正在使用MSSQL,请查看临时表表变量

一般的想法是将所有搜索词(名字-姓氏组合)放入一个临时表/表变量中,然后执行一个查询,检查dm_user.description是否包含至少一个搜索项。

代码语言:javascript
复制
SELECT DISTINCT u.id
FROM dm_users AS u, #tmp as t
WHERE dm_users.description LIKE N'%' + t.searchterm + '%'
票数 1
EN

Stack Overflow用户

发布于 2012-02-04 10:46:11

您可能可以使用FreeText搜索MSSQL,但是可以使用它来处理名称。

http://msdn.microsoft.com/en-us/library/ms176078.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9140261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档