Att intressera ifrågasätter… problemlies med att figurera ut hur man matchar den mest närmare detalj kodifierar till numrera. Min mekanism använder längden av riktnummerprefixet för att hjälpa att figurera ut mest anslår en. Notera att jag har precis tagit dina levererade data och har snabbt gjort någon CTEs ut ur den. Precis att visa dig hur det VALDA skulle arbetet…,
MED CalledNumbers SOM (
VALDA ”98798798797” SOM konto
UNION VALDA ”19123123123”, --Jag har ändrat denna värderar från ditt original postar
UNION VALDA ”13123123123”,
UNION VALDA ”12423123127”,
) AreaCodes SOM (
VALDA ”12” SOM prefix, ”grupperar” SOM GroupName
UNION VALDA ”98”, ”grupp B”,
UNION VALD ”1”, ”grupperar A”,
UNION VALDA ”131”, ”grupp 5”,
UNION VALDA ”124”, ”grupp 4”,
)
VÄLJ CalledNumbers.*, AreaCodes.*
FRÅN CalledNumbers
LÄMNAT YTTRE SAMMANFOGA AreaCodes PÅ LIK CalledNumbers.Account AreaCodes.Prefix + ”%”,
(VÄLJ max, VAR LEN (AreaCodes.Prefix) = (LEN (prefix)) FRÅN AreaCodes VAR LIK CalledNumbers.Account AreaCodes.Prefix + ”%”)
Och för att att göra din uppdatering som krävt:
UPPDATERINGCalledNumbers UPPSÄTTNING CalledNumbers.GroupName = AreaCodes.GroupName FRÅN
CalledNumbers
LÄMNAT YTTRE SAMMANFOGA AreaCodes PÅ LIK CalledNumbers.Account AreaCodes.Prefix + ”%”,
(VÄLJ max, VAR LEN (AreaCodes.Prefix) = (LEN (prefix)) FRÅN AreaCodes VAR LIK CalledNumbers.Account AreaCodes.Prefix + ”%”)