我想创建一个视图,然后在一个查询中从中进行选择,请您告诉我下面的代码是如何可能的:
create view myView as
select [Order Details].Discount from [Order Details]
select * from myView
如果我想运行代码,首先我必须选择与创建视图相关的那部分,然后我必须选择与从该视图中选择相关的下一部分。我想知道这些查询在执行查询时一起运行的方式,创建视图然后执行select。
现在我想补充一点,如果我创建了那个视图,那么SQL会给我错误。我怎样才能解决这个问题??意味着该对象将只创建一次
答案 0 :(得分:6)
在命令对你有用之后,只需写下Go
create view myView as
select [Order Details].Discount from [Order Details]
Go
select * from myView
Go
如果不需要视图,您也可以使用CTE
-- Define the CTE expression name and column list.
WITH Sales_CTE (Discount)
AS
-- Define the CTE query.
(
select [Order Details].Discount from [Order Details]
)
-- Define the outer query referencing the CTE name.
SELECT *
FROM Sales_CTE
答案 1 :(得分:1)
您也可以使用exec
来实现此目标
IF OBJECT_ID('dbo.myView','V') IS NULL
EXEC ('create view dbo.myView as
select [Order Details].Discount from [Order Details]
')
SELECT * FROM myView