Kry*_*nya 5 sql t-sql sql-server
我已经查看了其他几个此类问题,但没有找到一个可以帮我解决这个问题的问题.我想要做的是:我想为所有员工创建一个表,以便分配一个EmployeeID
将在其他几个表中使用的表.该表和其他表工作正常.当我尝试创建一个新表时,我的问题就出现了,EmployeeType
因此我可以仅根据特定类型的员工提供信息.在SELECT
所有三个表的语句中,我收到此错误:
'('.期待ID)附近的语法不正确.
我用Google搜索并搜索了如何解决它,但我尝试过的任何工作都没有.我错过了什么?
CREATE TABLE Employees
(
EmployeeID int NOT NULL PRIMARY KEY IDENTITY,
EmpFirstName char(50) NOT NULL,
EmpLastName char(50) NOT NULL,
EmpAddress varchar(50) NOT NULL,
EmpCity char(50) NOT NULL,
EmpState char(2) NOT NULL,
EmpZipCode varchar(10) NOT NULL,
EmpPhone varchar(12) NOT NULL,
EmpJobTitle char(30) NOT NULL,
EmployeeType char(30) NOT NULL,
Salary money NOT NULL,
HoursPerWeek int NOT NULL,
);
CREATE TABLE Collective AS
(SELECT
*
FROM
[dbo].[Employees]
WHERE
EmployeeID = Employees.EmployeeID
AND EmployeeType = 'Collective');
CREATE TABLE PaidStaff AS
(SELECT
EmployeeID AS ReviewerID,
EmpFirstName,
EmpLastName,
EmpAddress,
EmpCity,
EmpState,
EmpZipCode,
EmpPhone,
EmpJobTitle
Salary,
HoursPerWeek
FROM
Employees
WHERE
EmployeeID = Employees.EmployeeID
AND EmployeeType = 'PaidStaff');
CREATE TABLE Volunteers AS
(SELECT
EmployeeID AS ReviewerID,
EmpFirstName,
EmpLastName,
EmpAddress,
EmpCity,
EmpState,
EmpZipCode,
EmpPhone,
EmpJobTitle
FROM
Employees
WHERE
EmployeeType = 'Volunteer');
Run Code Online (Sandbox Code Playgroud)
SQL Server没有CREATE TABLE .... AS (SELECT ...
功能.这只是无效的T-SQL语法 - 因此错误.
如果要从a 创建新表(现在还不存在!)SELECT
,则需要使用以下语法:
SELECT
EmployeeID AS ReviewerID,
EmpFirstName,
EmpLastName,
EmpAddress,
EmpCity,
EmpState,
EmpZipCode,
EmpPhone,
EmpJobTitle
INTO
dbo.Volunteers
FROM
dbo.Employees
WHERE
EmployeeType = 'Volunteer';
Run Code Online (Sandbox Code Playgroud)
这仅适用于新表 - dbo.Volunteers
- 尚不存在的情况.
如果需要将行插入现有表中,则需要使用以下语法:
INSERT INTO dbo.Volunteers (list-of-columns)
SELECT (list-of-columns)
FROM dbo.Employees
WHERE EmployeeType = 'Volunteer';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16936 次 |
最近记录: |