如何在现有SQL多表查询中添加LIKE条件筛选含Lifts的权限组数据
修改后的完整查询语句
SELECT SU.[UserId] ,SU.[Surname] ,SU.[FirstName] ,ST.[TokenData] ,APG.[Description] [AccessPermissionGroup] FROM [Sateon].[ac].[User] SU INNER JOIN [Sateon].[ac].[Token] ST ON ST.PermissionedEntityId = SU.UserId INNER JOIN [Sateon].[ac].[APG_PermissionedEntity] APG_Pe ON APG_Pe.PermissionedEntityId = SU.UserId INNER JOIN [Sateon].[ac].[AccessPermissionGroup] APG ON APG.AccessPermissionGroupId = APG_Pe.AccessPermissionGroupId WHERE APG.[Description] LIKE '%Lifts%'
相关说明
- 仅在所有JOIN逻辑之后新增了一行
WHERE APG.[Description] LIKE '%Lifts%'过滤条件即可达到需求 - 这里直接使用原表字段
APG.[Description]而不是SELECT中定义的别名AccessPermissionGroup,是因为大多数数据库的SQL执行顺序中WHERE子句优先级高于SELECT子句,使用别名会报错,用原字段兼容性更好 %是SQL的通配符,代表任意长度的任意字符,所以%Lifts%可以匹配所有字段值任意位置包含Lifts的记录,匹配规则默认区分大小写,如果需要不区分大小写可以根据你使用的数据库调整语法,比如SQL Server可以改成WHERE UPPER(APG.[Description]) LIKE '%LIFTS%'
内容的提问来源于stack exchange,提问作者Coops
相关产品推荐
相关产品推荐

