Значение столбца ОБНОВЛЕНИЕ SQL Server из значений столбца другой таблицы - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть две таблицы:

T1 :

CODE  FULL_NAME

и T2 :

CODE   FIRST_NAME   LAST_NAME

всестолбцы типа NVARCHAR.

Некоторые ячейки CODE в T1 пусты, и мне нужно получить их из T2.Мне нужно использовать FULL_NAME информацию в T1 и искать в LAST_NAME и FIRST_NAME столбцах в T2.Как написать такой UPDATE?

То, что я написал до сих пор:

UPDATE IMPORT_DATA.RDBS_DATA_STORAGE
SET child_iin = pd.iin
FROM IMPORT_DATA.RDBS_DATA_STORAGE
INNER JOIN nedb.PERSONAL_DATA pd ON child_iin LIKE 'N' + '%' + pd.LAST_NAME + '%' + ' ' + 'N' + '%' + 
pd.FIRST_NAME + '%'

ГДЕ LEN (child_iin) <1; </p>

Но безуспешно.

РЕДАКТИРОВАТЬ:

Я не могу просто использовать WHERE t1.FULL_NAME=t2.FIRST_NAME + ' ' + t2.LAST_NAME, потому что у меня может быть такой сценарий, где t1.FULL_NAME = 'Jorsh Arthur Weasley' и t1.FIRST_NAME = 'William', t2.LAST_NAME = 'Weasley'.

Также.

Мне нужно использовать N, потому что, как я уже сказал, столбцы имеют тип NVARCHAR, и у меня там есть буквы не-ASCII, например,

SELECT * FROM T1 WHERE CODE = 'Неважно' ничего не повторяется, чтобы это исправить, я должен добавить N: SELECT * FROM T1 WHERE CODE = N'Неважно' возвращает строку.

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Я думаю, вам просто нужно:

UPDATE t1
    SET t1.code = t2.code
FROM t1 INNER JOIN
     t2
     ON t1.FULL_NAME = t2.FIRST_NAME + ' ' + t2.LAST_NAME
WHERE t1.code IS NULL;
0 голосов
/ 06 декабря 2018

Вот ответ:

UPDATE IMPORT_DATA.RDBS_DATA_STORAGE
SET child_iin = pd.iin
FROM IMPORT_DATA.RDBS_DATA_STORAGE
       INNER JOIN nedb.PERSONAL_DATA pd
         ON child_iin LIKE '%' + pd.LAST_NAME + '%' + ' ' + '%' + pd.FIRST_NAME + '%'
WHERE LEN(child_iin) < 1;

N ненужно

0 голосов
/ 06 декабря 2018

Вы можете попробовать ниже

UPDATE T1 SET T1.CODE = T2.Code 
From T1
Join T2 on t1.FULL_NAME= t2.FIRST_NAME + ' ' +t2.LAST_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...