Jak zaktualizować dane niektórych kolumn danymi z innych tabel TSQL
Właśnie zdałem sobie sprawę, że zbieram nieprawidłowe dane dla jednej kolumny w mojej tabeli. Naprawiłem ten problem, jednak dotychczas zebrane dane pozostają niepoprawne.
Nazwijmy moje tabele
TableIWantToCorrecti
TableWithIDsW
TableIWantToCorrectmam klucz obcy do
TableWithIDs. Oto, co jest nie tak.
Mogę poprawić dane, porównując podciąg kolumny w
TableIWantToCorrectz kolumną w
TableWithIDs.
Więc obecnie mam
TableIWantToCorrect
Name ForeignKey
123-abc-123 15
456-def-456 15
789-ghi-789 15
TableWithIDs
CompareName id
abc 1
def 2
ghi 3
Dlatego chcę zaktualizować
TableIWantToCorrect, aby mieć poprawny ForeignKey, gdy podciąg w nazwie jest równy podciągowi w nazwie porównania. Pozycja podłańcucha jest zawsze taka sama, więc mogę użyć metody
Substring.
Moja próba:
Update TableIWantToCorrect
SET ForeignKey =
(SELECT id
FROM TableWithIDs
WHERE UPPER(CompareName) = UPPER((SUBSTRING(TableIWantToCorrect.Name, 4, 3)))
Wynik:
Podzapytanie zwróciło więcej niż 1 wartość. Nie jest to dozwolone, kiedy
następuje podzapytanie = ,! =, & <, & < =, & >, & > = lub gdy podzapytanie jest używane jako
wyrażenia. Aplikacja została odrzucona.
Wiem, że zrobiłem coś głupiego. Co tu zrobiłem źle?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: