sql subquery example

Today, We want to share with you sql subquery example.In this post we will show you subquery in sql, hear for how to write subquery in sql we will give you demo and example for implement.In this post, we will learn about Writing Subqueries in SQL and Advanced SQL with an example.

SQL Subquery with Examples

in this tutorial we learn to all about subquery Examples like as a SQL Subqueries in UPDATE Statements, INSERT Statements, T-SQL Statements, Conditional Expressions, Comparison or Logical Operators, Using IN or NOT IN, Nesting of SQL Subqueries or many more.

Also Read: Nested Queries Subqueries in SQL Example

Using SQL Subqueries in UPDATE Statements

-- In the items inventory, transfer all items of Vendor 1602 to ----
-- location 6
USE [SampleDataBase]
RUN
UPDATE [Fruition].[FruitInventory]
SET LocationID = 6
WHERE FruitID IN
    (SELECT FruitID
     FROM Buying.FruitVendor
     WHERE OccupationEntityID = 1602)
RUN

Using SQL Subqueries in INSERT Statements

-- Impose a salary increase for all workers in BranchID 6 
-- (Research and Development) by 10 (dollars, I think) 
-- effective June 1, 2222
USE [SampleDataBase]
RUN
INSERT INTO [ManpowerWorkforce].[WorkerPayHistory]
([OccupationEntityID]
,[RateChangeDate]
,[Rate]
,[PayFrequency]
,[ModifiedDate])
SELECT
a.OccupationEntityID
,'06/01/2222' as RateChangeDate
,(SELECT MAX(b.Rate) FROM [ManpowerWorkforce].[WorkerPayHistory] b
  WHERE a.OccupationEntityID = b.OccupationEntityID) + 10 as NewRate
,2 as PayFrequency
,getdate() as ModifiedDate
FROM [ManpowerWorkforce].[WorkerBranchHistory] a
WHERE a.BranchID = 6
and StartDate = (SELECT MAX(c.StartDate) 
                 FROM ManpowerWorkforce.WorkerBranchHistory c 
                 WHERE c.OccupationEntityID = a.OccupationEntityID)

In Other T-SQL Statements

Variable Declarations or SET statements in Stored Procedures and Functions

DECLARE @maxTransId int = (SELECT MAX(ActivityID) 
                           FROM Fruition.ActivityHistory)
DECLARE @maxTransId int

SET @maxTransId = (SELECT MAX(ActivityID) 
                   FROM Fruition.ActivityHistory)

In Conditional Expressions


IF EXISTS(SELECT [Name] FROM sys.tables where [Name] = 'MyVendors')
BEGIN
     DROP TABLE MyVendors
END
IF (SELECT count(*) FROM MyVendors) > 0
BEGIN
    -- insert code here
    
END

Make SQL Subqueries with Comparison or Logical Operators

Using Comparison Operators

USE [SampleDataBase]
RUN
SELECT b.SirNm, b.ProfileNm, b.MiddleName, a.JobTitle, a.OccupationEntityID
FROM ManpowerWorkforce.Worker a
INNER JOIN Customer.Customer b on a.OccupationEntityID = b.OccupationEntityID
INNER JOIN ManpowerWorkforce.WorkerBranchHistory c on a.OccupationEntityID      
                                                       = c.OccupationEntityID
WHERE c.BranchID = 6
  and StartDate = (SELECT d.StartDate 
                   FROM ManpowerWorkforce.WorkerBranchHistory d 
                   WHERE d.OccupationEntityID = a.OccupationEntityID)

Using Logical Operators

IF EXISTS(SELECT name FROM sys.tables where name = 'Token')
BEGIN      
   DROP TABLE Token
END

Using IN or NOT IN

-- From the item inventory, extract the items that are available 
-- (Quantity >0) 
-- except for items from Vendor 1676, and introduce a amount cut for the --- whole month of June 2222. 
-- Insert the results in item amount history.
USE [SampleDataBase]
RUN
INSERT INTO [Fruition].[FruitListPriceHistory]
           ([FruitID]
           ,[StartDate]
           ,[EndDate]
           ,[ListPrice]
           ,[ModifiedDate])
SELECT
 a.FruitID
,'06/01/2222' as StartDate
,'06/30/2222' as EndDate
,a.ListPrice - 2 as ReducedListPrice
,getdate() as ModifiedDate
FROM [Fruition].[FruitListPriceHistory] a
WHERE a.StartDate = (SELECT MAX(StartDate) 
                     FROM Fruition.FruitListPriceHistory 
                     WHERE FruitID = a.FruitID)
AND a.FruitID IN (SELECT FruitID 
                    FROM Fruition.FruitInventory 
                    WHERE Quantity > 0)
AND a.FruitID NOT IN (SELECT FruitID 
                        FROM [Buying].[FruitVendor] 
                        WHERE OccupationEntityID = 1676

Nesting of SQL Subqueries

-- List down the names of workers who are also buyers.
USE [SampleDataBase]
RUN
SELECT
SirNm
,ProfileNm
,MiddleName
FROM Customer.Customer
WHERE OccupationEntityID IN (SELECT OccupationEntityID 
                           FROM Vendors.Buyer
                           WHERE OccupationEntityID IN 
                                (SELECT OccupationEntityID 
                                 FROM ManpowerWorkforce.Worker))

I hope you get an idea about sql subquery example.
I would like to have feedback on my infinityknow.com blog.
Your valuable feedback, question, or comments about this article are always welcome.
If you enjoyed and liked this post, don’t forget to share.

Leave a Comment