gpt4 book ai didi

sql - TSQL:如何根据字符串和日期进行更新?

转载 作者:行者123 更新时间:2023-12-02 01:10:38 25 4
gpt4 key购买 nike

我收到一份学生电子表格,其中 500 名学生没有学生证。我将其作为表导入到 SQL 中,我将其称为“表 a”。

我还有另一个表,其中包含所有学生及其 ID,包括生日等。我将其称为“表 b”。

目标:
将表 b 中的学生 ID 复制到表 a 中。为此,我想我需要根据学生姓名和生日更新表 a。

问题:
我的更新查询是将学生 ID 复制给生日相同但姓氏不同的学生。所以结果是两个出生日期相同的不同学生最终拥有相同的学生 ID。

请问如何用正确的学生 ID 更新表 a?

我当前的更新声明将重复的 ID 放在同一个学生身上:

UPDATE table a
SET EMPStudentID = CAStudentID
FROM #students
WHERE EmpStudentName = CA_STUNAME
AND EMP_DOB = CA_DOB

谢谢。

样本数据截图: enter image description here

示例数据代码:

CREATE TABLE #students (
EMPStudentID int
, EmpStudentName varchar(30)
, EMP_DOB DATE
, CA_DOB DATE
, CA_STUNAME VARCHAR(30)
, CAStudentID int
)

INSERT INTO #students (EmpStudentName ,EMP_DOB ,CA_DOB ,CA_STUNAME ,CAStudentID)
VALUES
('Brothers, John', '20000309', '20000309', 'Brothers, John', 1111111),
('Campbell, Thomas', '20000107', '20000107', 'Campbell, Thomas', 2222222),
('Echols, Terry', '20000309', '20000309', 'Echols, Terry', 3333333),
('Jones, Bruce', '20000518', '20000518', 'Jones, Bruce', 4444444),
('Maxwell, Lauren', '20000728', '20000728', 'Maxwell, Lauren', 5555555),
('Feldler, John', '19991026', '19991026', 'Feldler, John', 6666666),
('Jenkins, Michael', '19990322', '19990322', 'Jenkins, Michael', 7777777),
('Taylor, Greg', '20000428', '20000428', 'Taylor, Greg', 8888888),
('Williams, Gene', '20000105', '20000105', 'Williams, Gene', 9999999),
('Wynn, Charles', '20000111', '20000111', 'Wynn, Charles', 1233211)

SELECT * FROM #students

最佳答案

在下面试试这个

UPDATE  S
SET EMPStudentID = A.CAStudentID

FROM #students S
INNER JOIN #TableA A
ON S.EmpStudentName = A.CA_STUNAME
AND S.EMP_DOB = A.CA_DOB

SELECT * FROM #students

关于sql - TSQL:如何根据字符串和日期进行更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45326328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com