CREATE VIEW PEOPLE
AS
SELECT CustomerId, CustomerName FROM Customers
UNION ALL
SELECT EmployeeId, EmployeeName FROM Employees
UNION ALL
SELECT FriendId, FriendName From Friends
现在我需要添加唯一ID的观点,自然是因为我可以有一个CustomerId = 15
,并提出了看法一个EmployeeID = 15
所以我做的诀窍是以下
SELECT
CAST('1' + CAST(CustomerId AS VARCHAR(30)) AS INT) as UniqueCustomerId,
CustomerId, CustomerName FROM Customers
UNION ALL
SELECT
CAST('2' + CAST(EmployeeId AS VARCHAR(30)) AS INT) as UniqueEmployeeId,
EmployeeId, EmployeeName FROM Employees
UNION ALL
SELECT
CAST('3' + CAST(FriendId AS VARCHAR(30)) AS INT) as UniqueFriendId,
FriendId, FriendName From Friends
反正这个铸件varchar(30)
和回int
是一个开销,因为我有很多记录。
你能提出一个更好的方法吗?
是否需要是一个单列唯一标识符?看起来,将人员类型保存在单独的专栏中会更清晰。 –