ทำธุรกรรม SQL โดยใช้ WITH ใน CREATE VIEW


14

ฉันต้องการสร้างการดูด้วยการใช้คำสั่ง แต่ไม่พบการอ้างอิงเกี่ยวกับไวยากรณ์ที่ถูกต้องจริงๆ

ฉันอยากได้แบบนี้

WITH TempTbl AS (SELECT ...)
CREATE VIEW SomeView
SELECT *
FROM TempTbl

และไวยากรณ์ที่ถูกต้องสำหรับการใช้หลายกับคำสั่งคืออะไร?

ไม่มีประโยชน์ใน MSDN :(

คำตอบ:


25

CTE เข้าไปในมุมมอง

ทำแบบสอบถามด้วย CTE

WITH cte AS (...) SELECT ...;

เพียงเพิ่มมุมมอง CREATE AS .. ไป

CREATE VIEW
AS
WITH cte AS (...) SELECT ...;
GO

MSDN อธิบายหลาย CTE (ดูตัวอย่าง j)

CREATE VIEW
AS
WITH
   cte1 AS (...),
   cte2 AS (...),
   cte3 AS (...)
SELECT ...
GO

เคล็ดลับสำหรับฉันคือการลบวงเล็บพิเศษบางอย่าง create view myView as ( select ... )ใช้งานได้create view myView as with tempTbl as select ...ผล แต่create view myView as ( with tempTbl as select ... )เป็นข้อผิดพลาดทางไวยากรณ์ `
Molomby

6
CREATE VIEW 
someview
AS
WITH CTEstuff AS (SELECT etc)
SELECT * FROM CTESTuff;

ยินดีต้อนรับสู่ dba.se และขอบคุณสำหรับการสนับสนุน เพียงแค่คุณรู้คำถามที่นี่เป็นพื้นฐานจริง ๆ สำหรับไซต์และอาจจะถูกปิด - แต่นั่นไม่ใช่ภาพสะท้อนในคำตอบของคุณ :) เนื่องจากทักษะของคุณบน SQL Server และ postgres จะมีคำถามในหัวข้อมากขึ้น ถนนของคุณดังนั้นฉันหวังว่าคุณจะไปไหนมาไหน
แจ็คบอกว่าลอง topanswers.xyz

Btw postgres ยอดเยี่ยม! (พูดในฐานะ Oracle DBA) ฉันแน่ใจว่าคุณเห็นด้วย :)
แจ็คพูดว่าลอง topanswers.xyz

1
ยินดีที่ได้มาที่นี่ ฉันคิดว่ามันน่าละอายที่จะพิจารณาคำถามใด ๆ ที่พื้นฐานเกินไป แม้ว่าฉันจะเห็นด้วยว่ามันอาจไม่ใช่คำถามการบริหารและอาจอยู่ในฟอรัมอื่น ขอบคุณมาก!
Scott Herbert

ฉันคิดว่าคุณพูดถูกดังนั้นน่าจะดีที่สุด แต่เราพยายามและมีความยืดหยุ่นเล็กน้อยโดยเฉพาะอย่างยิ่งหากมีคนพยายามตอบคำถามตามเวลาที่เราสังเกตเห็น :)
แจ็คบอกลอง topanswers.xyz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.