2

有没有一种方法可以为查询提供速记符号?

前任。

Q1 = (select * from tablename2) 

Q2 = (select * from tablename2)

select name from Q1; 
select name from Q2;

我知道意见,但我不打算使用它们。

4

3 回答 3

2

是的。创建一个视图

CREATE VIEW Q1 AS (
  SELECT 
    name,
    id,
    othercol
  FROM tablename1
);

/* Works with a WHERE clause too */
CREATE VIEW Q2 AS (
  SELECT 
    name,
    id,
    othercol
  FROM tablename2
  WHERE othercol = 'some limitation'
);

SELECT name FROM Q1;
/* aggregates work too */
SELECT name, COUNT(*) AS numrows FROM Q2 GROUP BY name;

注意:不建议SELECT *在视图中(或在生产代码中的任何地方)。始终明确选择列表中的列,以便它们的顺序是确定的。

CREATE TEMPORARY TABLE ... SELECT或者,使用语法创建一个临时表。

CREATE TEMPORARY TABLE Q1 
  SELECT name, id, othercol FROM tablename1;

/* select from it */
SELECT name FROM Q1 WHERE id IN (1,2,3,4,5)

/* When done, drop it. Otherwise, it will be dropped when the client connection terminates. */
DROP TABLE Q1;
于 2012-10-06T21:32:37.913 回答
0

我认为你在谈论观点。查看他们的文档

于 2012-10-06T21:32:16.967 回答
0

视图类似于您要查找的内容。

但是对于其他查询或更新,“视图”不如“别名”或“外观”更方便。一个很好的比喻是“一个视图是一个虚拟表”。在 MSSQL 中,“视图”也可以成为增强安全性的有效方法。

这是一篇关于这个主题的好文章:

于 2012-10-06T21:40:03.673 回答