public static SqlQueryBuilder select(String... columns) {
    if (columns == null || columns.length == 0) {
      throw new IllegalArgumentException("No columns provided with SELECT statement. Please mention column names or '*' to select all columns.");
    }
    StringBuilder sqlBuilder = new StringBuilder();
    sqlBuilder.append("select ");
    sqlBuilder.append(String.join(", ", columns));
    return new SqlQueryBuilder(sqlBuilder);
  }
@Test
  public void testSelect() {
    String sql = SqlQueryBuilder.select("id", "rider", "time")
        .from("trips")
        .join("users").on("trips.rider = users.id")
        .where("(trips.time > 100 or trips.time < 200)")
        .orderBy("id", "time")
        .limit(10).toString();

    assertEquals("select id, rider, time from trips "
        + "join users on trips.rider = users.id "
        + "where (trips.time > 100 or trips.time < 200) "
        + "order by id, time "
        + "limit 10", sql);
  }