DataSunrise Achieves AWS DevOps Competency Status in AWS DevSecOps and Monitoring, Logging, Performance

Snowflake Cross Apply

Snowflake Cross Apply

Snowflake Cross Apply
Snowflake Cross Apply equivalent using LATERAL joins to simulate per-row function behavior.

Introduction

When you’re writing complex join logic in SQL Server, the CROSS APPLY operator gives you more flexibility than standard joins. If you’re using Snowflake, you may notice it lacks native support for CROSS APPLY. However, Snowflake does offer a compatible alternative.

This article shows how Snowflake Cross Apply behavior is achieved using LATERAL JOIN. You’ll also learn how it compares to SQL Server syntax and how to write performant, row-aware queries in Snowflake.

What Is CROSS APPLY?

In SQL Server, CROSS APPLY lets you join a table to a table-valued function. SQL Server evaluates the function for each row and merges the result with the outer row dynamically.

-- Using CROSS APPLY
SELECT *
FROM Person p
CROSS APPLY (
  SELECT *
  FROM Company c
  WHERE p.companyid = c.companyId
) Czip;

In many cases, you can replicate the logic with a regular INNER JOIN:

-- Equivalent INNER JOIN
SELECT *
FROM Person p
INNER JOIN Company c ON p.companyid = c.companyId;

Snowflake Cross Apply Equivalent

Although Snowflake doesn’t support CROSS APPLY directly, you can use LATERAL JOIN to achieve the same effect. This ANSI-standard syntax allows the subquery to reference outer table columns row by row.

-- Using LATERAL JOIN in Snowflake
SELECT *
FROM Person p
LEFT JOIN LATERAL (
  SELECT *
  FROM Company c
  WHERE p.companyid = c.companyId
) Czip ON TRUE;

If you want behavior closer to CROSS APPLY, switch to INNER JOIN LATERAL.

Execution Plan Behavior

Both SQL Server and Snowflake process these queries row-by-row:

  • The engine scans the main table sequentially.
  • It executes the subquery for each row.
  • The system joins the matching results immediately.

One key difference: SQL Server defaults to inner semantics with CROSS APPLY. Meanwhile, Snowflake uses LEFT JOIN LATERAL in most examples to preserve unmatched outer rows.

Example: Orders and OrderItems

Let’s say you want to calculate order totals by combining two tables:

-- Orders
CREATE TABLE Orders (
  OrderID INT,
  CustomerID INT,
  OrderDate DATE
);

-- OrderItems
CREATE TABLE OrderItems (
  OrderID INT,
  ItemID INT,
  Quantity INT,
  Price DECIMAL(10, 2)
);

-- Sample data
INSERT INTO Orders VALUES
(1, 101, '2023-05-01'),
(2, 102, '2023-05-02'),
(3, 101, '2023-05-03');

INSERT INTO OrderItems VALUES
(1, 1, 2, 10.00),
(1, 2, 1, 15.00),
(2, 1, 3, 10.00),
(2, 3, 2, 20.00),
(3, 2, 1, 15.00);

Now use LATERAL JOIN in Snowflake to compute totals:

SELECT
  o.OrderID,
  o.CustomerID,
  o.OrderDate,
  oi.TotalAmount
FROM Orders o
LEFT JOIN LATERAL (
  SELECT
    OrderID,
    SUM(Quantity * Price) AS TotalAmount
  FROM OrderItems
  WHERE OrderID = o.OrderID
  GROUP BY OrderID
) oi ON TRUE;

Expected output:

OrderID | CustomerID | OrderDate   | TotalAmount
--------+------------+-------------+-------------
1       | 101        | 2023-05-01  | 35.00
2       | 102        | 2023-05-02  | 70.00
3       | 101        | 2023-05-03  | 15.00

Performance Tips for LATERAL in Snowflake

  • Filter rows as early as possible in your subquery.
  • Select only necessary columns to reduce memory usage.
  • Convert reused logic into materialized views if needed.
  • Track execution cost using Snowflake’s query profiler.
  • Scale your virtual warehouse appropriately for concurrency and size.

Summary and Conclusion

Even though Snowflake lacks a CROSS APPLY operator, LATERAL JOIN fully replicates its functionality. You can migrate SQL Server logic by rewriting joins with INNER JOIN LATERAL or LEFT JOIN LATERAL depending on your goal.

Once you understand how these joins operate, you’ll unlock powerful row-context query options in Snowflake—perfect for aggregation, subqueries, and multi-stage logic.

About DataSunrise

DataSunrise helps organizations secure Snowflake databases with powerful tools for auditing, access control, data masking, and compliance automation. Our unified platform works across cloud and on-prem systems to protect sensitive data in real time.

If you’re ready to explore how DataSunrise can help with Snowflake security and compliance, request a demo. Our experts will show you how to integrate our solution with your data stack—without slowing down performance.

Next

Data Classification Framework: What Is It & What Are The Benefits

Data Classification Framework: What Is It & What Are The Benefits

Learn More

Need Our Support Team Help?

Our experts will be glad to answer your questions.

General information:
[email protected]
Customer Service and Technical Support:
support.datasunrise.com
Partnership and Alliance Inquiries:
[email protected]