Show / Hide Table of Contents

    ISqlHavingAndOr<TBuilder>.AndHavingRaw(string clause, params ISqlParameter[] parameters) Method

    .NET Standard 2.x

    Adds the AND logical operator and a raw SQL to the HAVING clause.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

      TBuilder AndHavingRaw(string clause, params ISqlParameter[] parameters);
    

    Parameters

    clause System.String

    A string of raw SQL to be added to the HAVING clause.

    parameters SnapObjects.Data.ISqlParameter

    (Optional) An array of ISqlParameter objects which define the SQL parameters used in the raw SQL.

    Returns

    TBuilder

    Returns the TBuilder object which can be used to add more search conditions to the current HAVING clause.

    Examples

    The following code example demonstrates how to use the AndHavingRaw method to add an AND condition (in raw SQL) to the HAVING clause.

    using SnapObjects.Data;
    using System;
    
    namespace Appeon.ApiDoc.ISqlHavingAndOrExamples
    {
        public class AndHavingRawExample
        {
            private readonly SchoolContext _context;
    
            public AndHavingRawExample(SchoolContext dataContext)
            {
                // Sets the data context
                _context = dataContext;
            }
    
            public void Example1()
            {
                var sqlQueryBuilder = new SqlQueryBuilder();
    
                // Groups "StudentGrade" table by StudentID and CourseID, and gets the sum of Grade of each group.
                // Specifies the HAVING condition for group as "StudentID > 0" and StudentID smaller than the input parameter.
                // The value of input parameter is specified when SQL is executed.
                sqlQueryBuilder
                    .Select("StudentID")
                    .Select("sum(Grade)")
                    .From("StudentGrade")
                    .GroupBy("StudentID, CourseID")
                    .HavingRaw("StudentID > 0")
                    .AndHavingRaw("StudentID < @studentid",
                                  SqlBuilder.Parameter<int>("studentid"));
    
                // Converts to raw SQL for the database corresponding to the data context.
                string sql = sqlQueryBuilder.ToSqlString(_context);
    
                Console.WriteLine(sql);
    
                // Executes the SQL and specifies "10" for the input parameter.
                var studentGrade = _context.SqlExecutor.Select<DynamicModel>(sql, 10);
    
                /*This code example produces the following output:
                  SELECT
                    [StudentID],
                    sum(Grade)
                  FROM [StudentGrade]
                  GROUP BY
                    [StudentID],
                    [CourseID]
                    HAVING ([StudentID] > 0
                    AND [StudentID] < @studentid)
               */
            }
        }
    }
    

    Applies to

    .NET Standard

    2.x

    Back to top Generated by Appeon