Skip to content
No results
We use cookies to ensure that we give you the best experience on our website.

# Add, remove and modify condition in where clause(.NET version)

This article shows how to use General SQL Parser to add, remove and modify condition in where clause, this feature enables your .NET(C#, VB.NET) application manipulate expression in where clause dynamically and create your own filter to fetch desired data set from database.

#### Add a condition

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3)

After executing this C# code, we can add a new condition “ClientID > 2” to where clause.

    TSelectSqlStatement select = (TSelectSqlStatement)sqlparser.SqlStatements[0];
    whereCondition w = new whereCondition(select.WhereClause);
    w.add(conditionType.and, "ClientID > 2");

Now, the SQL become this, easy and clean:

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3) AND ClientID > 2

#### Remove a condition

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3) AND ClientID > 2

After executing this C# code, we can remove condition “ClientID > 2” from the where clause.

    TSelectSqlStatement select = (TSelectSqlStatement)sqlparser.SqlStatements[0];
    whereCondition w = new whereCondition(select.WhereClause);
    w.remove("ClientID > 2");

Now, the SQL becomes this, easy and clean:

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3)

#### Replace/modify a condition

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3) AND ClientID > 2

After executing this C# code, we can replace condition “ClientID > 2” with “ClientID > 3” in the where clause.

    TSelectSqlStatement select = (TSelectSqlStatement)sqlparser.SqlStatements[0];
    whereCondition w = new whereCondition(select.WhereClause);
    w.replace("ClientID > 2", "ClientID > 3");

Now, the SQL becomes this, easy and clean:

    SELECT clientid,
           phone
    FROM   client
    WHERE  clientid IN ( 1, 2, 3) AND ClientID > 3

expressions in where clause was organized as a binary tree structure, and can be visited in preorder/inorder/postorder. you can anything you like by iterate this expression binary tree.

Here is another article had a detailed explanation about the expression structure.

Download this demo: C# version, Java version