Content type ID in the sql db are varbinary type and are not unique across site collections, cannot do joins on them it seems but you can filter with them. e.g. If you create a list in 2 site collections with same content type that has been syndicated the content type id will be different in both. There will be no way easily in SQL to get the content type name for display in reports. You could do a case statement on the content type id but expensive. I think I will deploy a field to each content type that has 1 unique default value and hide in the content type, this works and even hiding the new column continues to populate default value automatically. Now every time I add a record to a list it gets a default ID where only I know about it, not users and can access in SQL for reporting.