Зависит от того, как вы хотите это сделать. Я бы использовал функцию, а не писал сложный SQL. Вот функция, которая сделает это:
Public Function SwapNames(ByVal varOriginalName As Variant) As Variant Dim strOriginalName As String Dim lngLastNameStart As Long Dim strLastName As String Dim strFirstName As String If IsNull(varOriginalName) Or InStr(varOriginalName, " ") = 0 Then SwapNames = varOriginalName Else strOriginalName = varOriginalName lngLastNameStart = InStrRev(strOriginalName, " ") + 1 strLastName = Mid(strOriginalName, lngLastNameStart) strFirstName = Left(strOriginalName, lngLastNameStart - 2) SwapNames = strLastName & ", " & strFirstName End If End Function
Это возвращает эти значения:
?SwapNames(Null) Null ?SwapNames("Fenton") Fenton ?SwapNames("David Fenton") Fenton, David ?SwapNames("David W. Fenton") Fenton, David W.
... и вы просто используете его в своем SQL таким образом:
UPDATE tblPerson SET tblPerson.FullName = SwapNames(tblPerson.FullName)
Теперь, если вы хотите сделать это только на SQL, это более сложно и действительно грязно. Если ты этого хочешь, просто спроси, и я попробую.