sql - WITH AS (SELECT) 语句的 CREATE VIEW 语法
问题描述
SQL Server:我有以下工作 SQL 语句:
WITH required_skills AS
(
SELECT DISTINCT
e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
FROM
emplskills e
JOIN
jobskills j ON e.job_code = j.job_code
)
SELECT
r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
FROM
required_skills r
FULL OUTER JOIN
emplskills e ON r.empl_ID = e.empl_ID
AND r.skill_ID = e.skill_ID;
我想将此语句的输出转换为视图。我以为我可以这样做:
CREATE VIEW MY_VIEW
AS
(WITH required_skills AS
(
SELECT DISTINCT
e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
FROM
emplskills e
JOIN
jobskills j ON e.job_code = j.job_code
)
SELECT
r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
FROM
required_skills r
FULL OUTER JOIN
emplskills e ON r.empl_ID = e.empl_ID AND r.skill_ID = e.skill_ID
);
但它出错了:
'WITH' 附近的语法不正确
有人可以帮忙吗?
TIA,约翰
解决方案
去掉 AS 后面的括号。
CREATE VIEW MyViewName
AS
WITH required_skills as (
SELECT DISTINCT e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
FROM emplskills e
JOIN jobskills j
ON e.job_code = j.job_code
)
SELECT r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
FROM required_skills r
FULL OUTER JOIN emplskills e
ON r.empl_ID = e.empl_ID
AND r.skill_ID = e.skill_ID
推荐阅读
- mysql - 计算已经过去了多少个工作日
- mysql - 返回第二列不唯一的 ID。
- paypal - 贝宝支付沙盒账户问题,状态为 UNCLAIMED
- r - 从谷歌驱动器下载电子表格时出现问题的 GoogleAuthR 包
- regex - 什么是正则表达式来匹配正文中的两组单词
- php - 使用 Laravel Nova 进行图像干预
- codeigniter - codeigniter如何存储实时数据
- sql - 根据另一列的值设置列值
- python - Curve_fit 错误 - IndexError:只有整数、切片 (`:`)、省略号 (`...`)、numpy.newaxis (`None`) 和整数或布尔数组是有效索引
- kubernetes - 无法从普罗米修斯获取指标