Skip to main content

Logical functions - GREATEST

This function returns the maximum value from a list of one or more expressions.

-- syntax:

GREATEST ( expression1 [ , ...expressionN ] )

Arguments:

expression1, expressionN

A list of comma-separated expressions of any comparable data type. The GREATEST function requires at least one argument and supports no more than 254 arguments.

Each expression can be a constant, variable, column name or function, and any combination of arithmetic, bitwise, and string operators. Aggregate functions and scalar subqueries are permitted.

Return types:

Returns the data type with the highest precedence from the set of types passed to the function.

If all arguments have the same data type and the type is supported for comparison, GREATEST returns that type.

Otherwise, the function will implicitly convert all arguments to the data type of the highest precedence before comparison and use this type as the return type.

For numeric types, the scale of the return type will be the same as the highest precedence argument, or the largest scale if more than one argument is of the highest precedence data type.

-- Return maximum value from a list of constants

SELECT GREATEST('6.62', 3.1415, N'7')AS GreatestVal;

GO


-- Return maximum value from a list of character constants

SELECT GREATEST('Glacier', N'Joshua Tree', 'Mount Rainier') AS GreatestString;

GO


-- Return maximum value from a list of column arguments

SELECT P.Name,

    P.SellStartDate,

    P.DiscontinuedDate,

    PM.ModifiedDate AS ModelModifiedDate,

    GREATEST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) AS LatestDate

FROM SalesLT.Product AS P

INNER JOIN SalesLT.ProductModel AS PM

    ON P.ProductModelID = PM.ProductModelID

WHERE GREATEST(P.SellStartDate, P.DiscontinuedDate, PM.ModifiedDate) >= '2003-01-01'

    AND P.SellStartDate >= '2003-01-01'

    AND P.Name LIKE 'Touring %'

ORDER BY P.Name;

-- Use GREATEST with local variables

CREATE TABLE dbo.Studies (

    VarX VARCHAR(10) NOT NULL,

    Correlation DECIMAL(4, 3) NULL

    );

INSERT INTO dbo.Studies

VALUES ('Var1', 0.2),

    ('Var2', 0.825),

    ('Var3', 0.61);

GO

DECLARE @PredictionA DECIMAL(2, 1) = 0.7;

DECLARE @PredictionB DECIMAL(3, 1) = 0.65;

SELECT VarX,

    Correlation

FROM dbo.Studies

WHERE Correlation > GREATEST(@PredictionA, @PredictionB);

GO

 

-- Use GREATEST with columns, constants, and variables

CREATE TABLE dbo.Studies (

    VarX VARCHAR(10) NOT NULL,

    Correlation DECIMAL(4, 3) NULL

    );

INSERT INTO dbo.Studies

VALUES ('Var1', 0.2),

    ('Var2', 0.825),

    ('Var3', 0.61);

GO

DECLARE @VarX DECIMAL(4, 3) = 0.59;

SELECT VarX,

    Correlation,

    GREATEST(Correlation, 0, @VarX) AS GreatestVar

FROM dbo.Studies;

GO

 

Source: Microsoft

Comments

Popular posts from this blog

SSRS INTERVIEW QUESTIONS

Q: What is SSRS? Ø   SSRS or SQL Server Reporting Service is a server-based report generation software systems from Microsoft and is part of Microsoft BI. Ø   It is used for preparing and delivering interactive and variety of reports. Ø   It is administered through an web based interface. Ø   Reporting services utilizes a web service interface for supporting and developing of customized reporting applications. Ø   SSRS lets you create very rich reports (Tabular/Graphical/Interactive) from various datasources with rich data visualization (Charts, Maps, sparklines) Ø   SSRS allows are reports to be exported in various formats (Excel, PDF, word etc) Q: Explain SSRS Architecture? Reporting services architecture comprises of integrated components. It is a multi-tiered, included with application, server and data layers. This architecture is scalable and modular. A single installation can be used across multiple computers. It includes the fo...

Exception deserializing the package "The process cannot access the file because it is being used by another process."

TITLE: Microsoft Visual Studio ------------------------------ Failed to start project ------------------------------ ADDITIONAL INFORMATION: Exception deserializing the package "The process cannot access the file 'E:\SSASCube\HistoricalDataLoad\HistoricalDataLoad\bin\Development\HistoricalDataLoad.ispac' because it is being used by another process.". (Microsoft.DataTransformationServices.VsIntegration) ------------------------------ The process cannot access the file 'E:\SSASCube\HistoricalDataLoad\HistoricalDataLoad\bin\Development\HistoricalDataLoad.ispac' because it is being used by another process. (mscorlib) ------------------------------ BUTTONS: OK ------------------------------ While running SSIS package i got the error “The process cannot access the file ‘*.ispac’ because it is being used by another process”. I tried to close SSDT and run it again but, I still got the same error while compiling. Then, after searching over internet, I got...

Failed to execute the package or element. Build errors were encountered

Error: TITLE: Microsoft Visual Studio ------------------------------ Failed to execute the package or element.   Build errors were encountered. For more information, see the Output window. ------------------------------ BUTTONS: OK ------------------------------   Solution: We tried to close SSDT and run it again but, we still got the same error while running SSIS package. Then, we need to follow bellow solution: Step 1: Go to Task Manager–> Details Tab. Step 2: Locate the process “ DtsDebugHost.exe “. Kill this process. There might be multiple instances of this process. Kill all of them. Step 3: Rerun SSIS package