在我的工作中,我们有许多存储客户机信息的表。每个客户都有一个单独的id号。我们用于命名表的约定是字母前缀,然后是id。为了完成我的工作并解决出现的问题,我们目前必须在excel中编写一条sql语句,在需要使用id的任何位置(例如构造from子句)都使用id作为单元格引用。有没有办法我可以写一次查询,让它把id后缀换成一个查询?当前的方法是使用一系列并集。where子句和SELECT在查询中都是相同的(通常情况下),唯一的区别是from和任何后续联接上的id,也可能是一个静态字段,用于跟踪单个数据行来自哪个表/帐户。
表格的形式如下:
Select * from "some letter"101 Limit 1
Select * from "some other letter"101 limit 1
Select * from "some other letter"101 limit 1
Select * from "some other letter"101 limit 1
etc...
因此,查询可能如下所示:
SELECT '100' as id, field, field, field, field
FROM D100 where field between 'xxxxx' AND 'xxxx' AND field = 'xxxx' AND field= 'xxxx' union
SELECT '102' as id, field, field, field, field
FROM D102 where field between 'xxxx' AND 'xxxx' AND field = 'xxxxx' AND field = 'xxxxx' union
SELECT '103' as id, field, field, field, field
FROM D103 where field between 'xxxxx' AND 'xxxxxx' AND field = 'XXXX' AND field = 'XXXXX' union ....
我几乎不需要查询每个表,通常我有一个需要检查的id列表,所以理想情况下,我只需要为单个查询提供一个列表,在需要的地方自动交换id。
有没有更好的办法?缺少数据是一种安全预防措施
另外,我没有这个数据库的写访问权限,只有读权限。
更详细地说,每个客户机都有许多表,并且有大量的客户机,这些表由一个前缀字母标识,该前缀字母指定它所包含的数据,后跟客户机id。通常一个工作请求会出现,而我只有一个id列表。我办公室里每个人目前的做法都是在excel中用连接建立查询,我正在寻找一种方法,只使用一个查询,而不使用我感兴趣的id对每个表重复整个查询,并得到一个结果。我们正在使用的联合技术是有效的,但我想知道是否有一种方法可以更快地做到这一点。
编辑参数可能是答案,但它们不是存储过程
1条答案
按热度按时间tct7dpnv1#
您的问题中缺少很多信息,但此查询将为您生成sql: