Sql 基于两个标准返回一组记录的Ms Access查询
我有一个MS Access查询,它根据以下标准返回记录: 1.返回[2,15,30…]中ID号所在的记录这是一个包含106个数字的列表。 2.返回所有不象“**LQ**”的记录。这是目前返回的10条记录Sql 基于两个标准返回一组记录的Ms Access查询,sql,ms-access,Sql,Ms Access,我有一个MS Access查询,它根据以下标准返回记录: 1.返回[2,15,30…]中ID号所在的记录这是一个包含106个数字的列表。 2.返回所有不象“**LQ**”的记录。这是目前返回的10条记录 我希望此查询始终返回116条记录,但始终会更改的数字是LQ记录的数量。因此,不是总是调整106条记录的列表以适应LQ记录的数量,而是有一种方法可以运行一个查询,该查询首先提取所有LQ记录,然后用106条记录列表中的随机记录填补空白以达到116条记录?如果我理解正确,这是关于在其余行之前对显式列表
我希望此查询始终返回116条记录,但始终会更改的数字是LQ记录的数量。因此,不是总是调整106条记录的列表以适应LQ记录的数量,而是有一种方法可以运行一个查询,该查询首先提取所有LQ记录,然后用106条记录列表中的随机记录填补空白以达到116条记录?如果我理解正确,这是关于在其余行之前对显式列表进行排序。您可以按的顺序使用条件逻辑:
select t.*
from t
order by iif(id in (2, 15, 30, . . . ), 1, 2)
如果我理解正确,这是关于在其余行之前对显式列表排序。您可以按的顺序使用条件逻辑:
select t.*
from t
order by iif(id in (2, 15, 30, . . . ), 1, 2)
因此,既然您确定将始终从过滤器中获得106条记录
where ID_numbers IN [2,15,30...]
将Like过滤器输出限制为前10个,并合并所有2组
Select top 10 *
From #t
where FldContainingLQ NOT LIKE "** LQ **"
Union All
Select *
From #t
where ID_numbers IN [2,15,30...]
同时也要对未来持谨慎态度
- 拥有
和联合
联合所有人
- 如果
那样按预期情况返回10条记录不像“**LQ**”
where ID_numbers IN [2,15,30...]
将Like过滤器输出限制为前10个,并合并所有2组
Select top 10 *
From #t
where FldContainingLQ NOT LIKE "** LQ **"
Union All
Select *
From #t
where ID_numbers IN [2,15,30...]
同时也要对未来持谨慎态度
- 拥有
和联合
联合所有人
- 如果
那样按预期情况返回10条记录不像“**LQ**”
- 如果LQ返回的记录少于10条,则下面的查询将调整为从ID条件返回10条记录
Select * from
--Query 1 will return 10 records IF NOT LIKE **LQ** has 10 records that will be returned , else return 10 rows for ID condition
--When **LQ** returns less than 10 accordingly records for ID condition will be returned
(Select top 10 *
From
(Select *
From t
where Colmn NOT LIKE "** LQ **"
Union All
Select *
From t
where ID IN (2,15,30...))) as tab
Union ALL
Select *
From t
where ID IN (2,15,30...)
如果LQ返回的记录少于10条,则下面的查询将调整为从ID条件返回10条记录
Select * from
--Query 1 will return 10 records IF NOT LIKE **LQ** has 10 records that will be returned , else return 10 rows for ID condition
--When **LQ** returns less than 10 accordingly records for ID condition will be returned
(Select top 10 *
From
(Select *
From t
where Colmn NOT LIKE "** LQ **"
Union All
Select *
From t
where ID IN (2,15,30...))) as tab
Union ALL
Select *
From t
where ID IN (2,15,30...)
请避免张贴仅限代码的答案。请编辑并添加一些上下文。好的@VishavPremlall,我描述了答案-感谢您指出,请不要发布仅代码的答案。请编辑并添加一些上下文。好的@VishavPremlall,我描述了答案-感谢您指出这一点