Hi Rohit, SGW selection is done by MME based on the current location of UE in the network. When I say current location of UE, it means current serving cell /eNodeB/tracking area for that particular UE. Somewhat I remember in Ericsson/ALU product, MME selects the SGW based on the current tracking area of UE. Final target is to reduce the chance of SGW change during handover of UE from one eNodeB to another eNodeB.
SGW selection is completely depends on vendor and network topology. 3GPP standard does not provide any particular algorithm/mechanism for SGW selection as per my knowledge.