我需要编写一个查询,以获得名为description的属性中的用户列表。用户名以任何格式保存在该属性中:-
在这种情况下,如果我需要在该属性中搜索给定的用户列表(大约100个),我必须编写类似select * from dm_user where UPPER("description") like '%FIRSTUSER_FIRSTNAME%' OR UPPER("description") like '%SECONDUSER_FIRSTNAME%'之类的查询。
这是我可以做的更简单的方法,我讨厌写*UPPER("description") like* 100次。(请推荐标准的sql查询)。我需要在Documentum和MSSQL上运行这个查询。
我只想有这样的
{
select * from dm_user
where UPPER("description")
like IN ('%FIRSTUSER_FIRSTNAME%','%SECONDUSER_FIRSTNAME%');但它在documentum}中不可用。
发布于 2012-02-04 11:06:19
如果您想避免多次编写LIKE,并且您正在使用MSSQL,请查看临时表或表变量。
一般的想法是将所有搜索词(名字-姓氏组合)放入一个临时表/表变量中,然后执行一个查询,检查dm_user.description是否包含至少一个搜索项。
SELECT DISTINCT u.id
FROM dm_users AS u, #tmp as t
WHERE dm_users.description LIKE N'%' + t.searchterm + '%'https://stackoverflow.com/questions/9140261
复制相似问题