An old SCCM Primary site was setup in the same SQL instance before. The old SCCM SQL DB was corrupted and cannot be recovered. A new SCCM is setup using the same SQL instance that the old SCCM used. The prerequisites check detected the SQL instance is hosting another SCCM site, which is the old SCCM site. I’ve deleted the corrupted DB of the old SCCM, but there must be something that are still hidden and detected by the prerequisites checker.
Browsing through the internet and found that SCCM installation will create records in the SQL server registry. Yes, it is correct. There are still some leftover SCCM registry found in the SQL server registry, HKLM\Software\Microsoft\SMS. I deleted the SMS key and then rerun the prerequisites checker. The prerequisites checker passed and then SCCM installation succeeded. :)