Show / Hide Table of Contents

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

    .NET Standard 2.x

    Adds the AND logical operator and a raw SQL string to the HAVING clause. You need to specify an alias for the raw SQL.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

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

    Parameters

    clause System.String

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

    alias System.String

    The alias specified for the raw SQL.

    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 Example2()
            {
                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.
                // Gives the AndHaving raw SQL a name so it can be modified or removed easily.
                sqlQueryBuilder
                    .Select("StudentID")
                    .Select("sum(Grade)")
                    .From("StudentGrade")
                    .GroupBy("StudentID, CourseID")
                    .HavingRaw("StudentID > 0")
                    .AndHavingRaw("StudentID < @studentid", "having",
                                  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