Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于两个标准返回一组记录的Ms Access查询_Sql_Ms Access - Fatal编程技术网

Sql 基于两个标准返回一组记录的Ms Access查询

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条记录?如果我理解正确,这是关于在其余行之前对显式列表

我有一个MS Access查询,它根据以下标准返回记录: 1.返回[2,15,30…]中ID号所在的记录这是一个包含106个数字的列表。 2.返回所有不象“**LQ**”的记录。这是目前返回的10条记录


我希望此查询始终返回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...] 
同时也要对未来持谨慎态度

  • 拥有
    联合
    联合所有人
  • 如果
    不像“**LQ**”
    那样按预期情况返回10条记录

既然您确信您将始终从过滤器中获得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...] 
同时也要对未来持谨慎态度

  • 拥有
    联合
    联合所有人
  • 如果
    不像“**LQ**”
    那样按预期情况返回10条记录

    • 如果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,我描述了答案-感谢您指出这一点