private static void printResultByLv(Scanner scan){
		while (true) {
			System.out.println();
			System.out.println("Please choose a level:");
			System.out
					.println("--------------------------------------------------------------------------------");
			//Print all levels by order from LEVEL enumeration.
			int i = 0;
			for (LEVEL l : LEVEL.values()) {
				System.out.println("" + (i + 1) + ". " + l.toString() + ".");
				i++;
			}
			System.out
					.println("--------------------------------------------------------------------------------");
			System.out.println(goMainMenu);
			String lv = scan.next();
			//If user chose to go back to main menu.
			if (lv.equalsIgnoreCase(mainMenuCmd)) {
				return;
			}
			//If user didn't choose to go back to main menu.
			else {
				//If input is numerical.
				if (numerical(lv)) {
					int option = Integer.parseInt(lv);//Parse input to integer representing the order of level.
					//If input is in valid range.
					if (0 < option && option <= LEVEL.values().length) {
						String level = LEVEL.values()[option-1].name();//Get the name of level user chose.
						String lvString = LEVEL.values()[option-1].toString();//Get the output string of level user chose.
						System.out.print("\n\n\n\n");
						System.out.println("**********************************************************************");
						System.out.println("* Notice this result below is from database, NOT randomly generated. *");
						System.out.println("**********************************************************************");
						System.out.println();
						System.out.println("The competition result of level "+lvString+" is:");
						/**
						 * Notice that the @ds.getCompetitionFromDbByLv method only get result from database for displaying.
						 * It is different point with which the method @printResult has above.
						 */
						List<Competition> competitions = ds.getCompetitionFromDbByLv(level);
						//Display all competitions based on the level user chose.
						ds.printCompetitions(competitions);
						/**
						 * Reusing those methods or interface below from Yuanyuan Kang.
						 * For more details please go check the corresponding class.
						 */
						ReusingMethodsInterface rmi = new ReusingMethods();//Initialize a interface.
						System.out.println(rmi.printWinner(competitions));//Print the winner student in particular level.
						System.out
						.println("--------------------------------------------------------------------------------");
						//Get the competition list divided by school.
						List<List<Competition>> n = rmi.divide(competitions);
						System.out.println(rmi.toString(n));//Print the winning school in particular level.
						System.out.println();
						System.out
						.println("--------------------------------------------------------------------------------");
					} else
						System.out.println("Please input valid command.");
				}else
					System.out.println("Please input valid command.");
			}
		}
	}