Sql 指定结果数据中必须忽略的列

Sql 指定结果数据中必须忽略的列,sql,postgresql,dapper,postgresql-9.4,Sql,Postgresql,Dapper,Postgresql 9.4,我有一个CTE返回下表: m_ids |gp_id |id |m_id |id |type|id |type|qty|... ------|------|---|-----|---|----|---|----|---|--- 列m_id、gp_id和m_id用于联接,必须删除。然后,数据进入cliend端,Dapper将处理列名的模糊性,所以这不是问题 问题是如何从数据中删除某些列,因为dapper将查看列的顺序以创建实体。 我不能只选择所有需要的列,因为有很多相同的名称(即使我可以,这可能是

我有一个CTE返回下表:

m_ids |gp_id |id |m_id |id |type|id |type|qty|...
------|------|---|-----|---|----|---|----|---|---
m_id
gp_id
m_id
用于联接,必须删除。然后,数据进入cliend端,Dapper将处理列名的模糊性,所以这不是问题

问题是如何从数据中删除某些列,因为dapper将查看列的顺序以创建实体。
我不能只选择所有需要的列,因为有很多相同的名称(即使我可以,这可能是个坏主意,因为我需要的列有很多)

有人能帮我吗?
必须保留数据的顺序,最后应该是这样的:

   id |id |type|id |type|qty|...
   ---|---|----|---|----|---|---
编辑:返回该数据的查询如下所示:

select
    m1.*,
    m2.*
from
    pairs p
    inner join materials m1 on m1.id=p.id1
    inner join materials m2 on m2.id=p.id2

事实证明,当在一行中返回多个实体时,Dapper使用列
id
作为分隔符,因此诀窍是确保所有多余的列都放在任何实体的末尾,Dapper将忽略它。所以我把这些列按这样的顺序排列,就是这样:

id |id |type|m_ids |gp_id |m_id |id |type|qty|...
---|---|----|------|------|-----|---|----|---|...

如果没有看到您最初的查询,我不会尝试回答。最简单的方法是只对子查询您当前的查询并以您想要的方式别名。请注意,中间表不能有两个别名相同的列,因此出现三次的
id
将不起作用;首先,您必须分别为它们设置别名,然后在最外层的查询中设置别名。不要选择
m1.*
m2.*
,只需选择要显示在最终结果集中的列,必要时添加别名即可。@TimBiegeleisen谢谢,我认为这可能是一种方法。我只是想知道是否有办法在返回的数据中忽略或删除具有指定名称的列。