Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 是否可以将此视图';什么查询更紧凑?_Sql_Sql Server - Fatal编程技术网

Sql 是否可以将此视图';什么查询更紧凑?

Sql 是否可以将此视图';什么查询更紧凑?,sql,sql-server,Sql,Sql Server,在许多情况下。。。是否可以使此视图的查询更紧凑?您可以使用(通常用于INSERT),然后对其进行交叉连接 SELECT ma.ManningID ... ,'P01' AS Pline ... FROM Manning AS ma UNION ALL SELECT ma.ManningID ... ,'P02' AS Pline ... FROM Manning AS ma UNION ALL SELECT ma.Manni

在许多情况下。。。是否可以使此视图的查询更紧凑?

您可以使用(通常用于INSERT),然后对其进行交叉连接

SELECT ma.ManningID
      ...
      ,'P01' AS Pline
      ...
FROM Manning AS ma
UNION ALL
SELECT ma.ManningID
      ...
      ,'P02' AS Pline
      ...
FROM Manning AS ma
UNION ALL
SELECT ma.ManningID
      ...
      ,'P03' AS Pline
      ...
FROM Manning AS ma
这个


它的格式是否重要?只要它是可读的,那么这就是你真正应该关心的。您可以将每个部分放入自己的视图中,然后将它们合并在一起,但这样做没有任何好处。除了所选的
Pline
列之外,查询之间真的没有区别吗?如果是这样,为什么不在
Manning
和填充有
Pline
值的表之间设置一个
交叉连接
SELECT ma.ManningID
 , ... 
 , p.Pline 
 , ...  
FROM Manning ma  
CROSS JOIN (VALUES  ('P01'),('P02'),('P03')) P(Pline)
SELECT ma.ManningID
      ...
      ,Pline
      ...
FROM Manning AS ma
cross join (select 'p01' AS Pline
union 'p02'
union 'p03') c