Advertisements

SQL Puzzle | How to alter a column from null to not null

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | How to alter a column from null to not null

In this puzzle you have to make changes to the table properties to make a column to NOT NULL from NULL. The catch here is that how you can handle the existing NULL values.

Script – DDL and INSERT Sample Data

--

CREATE TABLE Nulls
(
	 Id INT NOT NULL
	,Vals INT NULL
)
GO

INSERT INTO Nulls VALUES (1,NULL) ,(2,20),(3,30) , (4,NULL)
GO

SELECT * FROM Nulls
GO

--

If you directly use the alter command (Alter Table….Alter Column) you will get below error.

--

ALTER TABLE Nulls 
	ALTER COLUMN Vals INT NOT NULL

--

Msg 515, Level 16, State 2, Line 20
Cannot insert the value NULL into column ‘Vals’, table ‘master.dbo.Nulls’; column does not allow nulls. UPDATE fails.
The statement has been terminated.

Here first we have to update the NULL values to some other value. And then we can update the column definition.

–SOLUTION 1–

--

UPDATE x
SET x.Vals = -1 
FROM Nulls x 
WHERE x.Vals IS NULL
GO

ALTER TABLE Nulls 
	ALTER COLUMN Vals INT NOT NULL
GO

--

Enjoy 🙂

Please add comment(s) if you have one or multiple solutions in mind. Thank You.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Performance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

Advertisements

Advanced SQL | Fill the Price for missing months

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


Advanced SQL | Fill the Price for missing months

A very close friend given this to me. In this puzzle you have to fill the price of SKU & Color Id for missing months. Note that SKU & Color Id should be considered as a business unit. So you have to set the previous value available to the missing month. Please check out the sample input and the expected output. In this solution I have not considered any performance considerations. 🙂

Sample Input

SKU ColorId Price YM
1 1 10.0000 201801
1 1 12.0000 201804
2 1 80.0000 201704
3 1 28.0000 201704
3 1 20.0000 201804
3 1 19.0000 201806
3 1 27.0000 201808

Expected Output

SKU ColorId Price Ym
1 1 0.0000 201701
1 1 0.0000 201702
1 1 0.0000 201703
1 1 0.0000 201704
1 1 0.0000 201705
1 1 0.0000 201706
1 1 0.0000 201707
1 1 0.0000 201708
1 1 0.0000 201709
1 1 0.0000 201710
1 1 0.0000 201711
1 1 0.0000 201712
1 1 10.0000 201801
1 1 10.0000 201802
1 1 10.0000 201803
1 1 12.0000 201804
1 1 12.0000 201805
1 1 12.0000 201806
1 1 12.0000 201807
1 1 12.0000 201808
2 1 0.0000 201701
2 1 0.0000 201702
2 1 0.0000 201703
2 1 80.0000 201704
2 1 80.0000 201705
2 1 80.0000 201706
2 1 80.0000 201707
2 1 80.0000 201708
2 1 80.0000 201709
2 1 80.0000 201710
2 1 80.0000 201711
2 1 80.0000 201712
2 1 80.0000 201801
2 1 80.0000 201802
2 1 80.0000 201803
2 1 80.0000 201804
2 1 80.0000 201805
2 1 80.0000 201806
2 1 80.0000 201807
2 1 80.0000 201808
3 1 0.0000 201701
3 1 0.0000 201702
3 1 0.0000 201703
3 1 28.0000 201704
3 1 28.0000 201705
3 1 28.0000 201706
3 1 28.0000 201707
3 1 28.0000 201708
3 1 28.0000 201709
3 1 28.0000 201710
3 1 28.0000 201711
3 1 28.0000 201712
3 1 28.0000 201801
3 1 28.0000 201802
3 1 28.0000 201803
3 1 20.0000 201804
3 1 20.0000 201805
3 1 19.0000 201806
3 1 19.0000 201807
3 1 27.0000 201808

Script – DDL and INSERT Sample Data

--

CREATE TABLE SkuData
(
	 SKU BIGINT 
	,ColorId BIGINT  
	,Price DECIMAL(30,4)
	,YM INT	
)
GO

INSERT INTO SkuData VALUES 
(1,	1,10,201801),
(1,	1,12,201804),  /* Price changed in 2018 April */
(2, 1,80,201704),  /* Started in the 2017 April */
(3, 1,28,201704),  /* Price changed for this product 4 times*/
(3, 1,20,201804),
(3, 1,19,201806),
(3, 1,27,201808)
*/

SELECT * FROM SkuData
GO

--

–SOLUTION 1

--

DECLARE @StartYear AS INT = (SELECT MIN(LEFT(YM,4)) FROM SkuData)
;WITH CTE(Num) AS
(
    SELECT Number
    FROM (VALUES ('01'), ('02'), ('03'), ('04'), ('05'), ('06'), ('07'), ('08'),
    ('09'), ('10'),('11'),('12')) AS X(Number)
)
,SingleDigits(Number) AS
(
    SELECT Number
    FROM (VALUES (1), (2), (3), (4), (5), (6), (7), (8),
    (9), (0)) AS X(Number)
)
,Series AS
(
    SELECT (d1.Number+1) + (10*d2.Number) Number
    from
    SingleDigits as d1,
    SingleDigits as d2
)
,CTE2 AS 
(
	SELECT  sku, colorId, CONCAT(xx,Num) * 1 Num FROM
	(
		SELECT * , (@StartYear+(Number-1)) xx  FROM Series
		CROSS JOIN CTE
		CROSS JOIN (SELECT DISTINCT Sku,ColorId FROM SkuData)x
		WHERE (@StartYear+(Number-1)) <= YEAR(GETDATE())
	)k	
)
,CTE3 AS
(
	SELECT x.ColorId , x.SKU , b.Price , b.YM ,x.Num FROM CTE2 x
	LEFT JOIN SkuData b ON x.Num = b.YM  AND x.ColorId = b.ColorId and x.SKU = b.SKU	
	WHERE Num <= CONCAT(YEAR(GETDATE()),RIGHT(CONCAT('0',MONTH(GETDATE())),2))
)
,CTE4 AS
(
	SELECT z.ColorId , z.SKU , z.Price , Num 
	,ROW_NUMBER() OVER (PARTITION BY z.ColorId,z.SKU ORDER BY Num) rnk 
	FROM CTE3 z	
)
SELECT SKU,ColorId,ISNULL(Price,0) Price, Ym FROM 
(
	SELECT a.SKU, a.ColorId,ISNULL(a.Price,r.Price) Price, Num Ym
	FROM CTE4 a
	OUTER APPLY (
				 SELECT TOP 1 rnk Mins FROM CTE4 x WHERE x.ColorId = a.ColorId AND x.SKU = a.SKU
				 AND a.rnk > x.rnk AND x.Price IS NOT NULL
				 ORDER BY x.Num DESC
				)x
	OUTER APPLY
			   (
				 SELECT TOP 1 Price 
				 FROM CTE4 b			 
				 WHERE b.rnk = x.Mins
				 AND a.ColorId = b.ColorId AND a.SKU = b.SKU
			   )r
)z
ORDER BY Sku , ColorId,Ym

--

OUTPUT – 1

--

SKU                  ColorId              Price                                   Ym
-------------------- -------------------- --------------------------------------- -----------
1                    1                    0.0000                                  201701
1                    1                    0.0000                                  201702
1                    1                    0.0000                                  201703
1                    1                    0.0000                                  201704
1                    1                    0.0000                                  201705
1                    1                    0.0000                                  201706
1                    1                    0.0000                                  201707
1                    1                    0.0000                                  201708
1                    1                    0.0000                                  201709
1                    1                    0.0000                                  201710
1                    1                    0.0000                                  201711
1                    1                    0.0000                                  201712
1                    1                    10.0000                                 201801
1                    1                    10.0000                                 201802
1                    1                    10.0000                                 201803
1                    1                    12.0000                                 201804
1                    1                    12.0000                                 201805
1                    1                    12.0000                                 201806
1                    1                    12.0000                                 201807
1                    1                    12.0000                                 201808
2                    1                    0.0000                                  201701
2                    1                    0.0000                                  201702
2                    1                    0.0000                                  201703
2                    1                    80.0000                                 201704
2                    1                    80.0000                                 201705
2                    1                    80.0000                                 201706
2                    1                    80.0000                                 201707
2                    1                    80.0000                                 201708
2                    1                    80.0000                                 201709
2                    1                    80.0000                                 201710
2                    1                    80.0000                                 201711
2                    1                    80.0000                                 201712
2                    1                    80.0000                                 201801
2                    1                    80.0000                                 201802
2                    1                    80.0000                                 201803
2                    1                    80.0000                                 201804
2                    1                    80.0000                                 201805
2                    1                    80.0000                                 201806
2                    1                    80.0000                                 201807
2                    1                    80.0000                                 201808
3                    1                    0.0000                                  201701
3                    1                    0.0000                                  201702
3                    1                    0.0000                                  201703
3                    1                    28.0000                                 201704
3                    1                    28.0000                                 201705
3                    1                    28.0000                                 201706
3                    1                    28.0000                                 201707
3                    1                    28.0000                                 201708
3                    1                    28.0000                                 201709
3                    1                    28.0000                                 201710
3                    1                    28.0000                                 201711
3                    1                    28.0000                                 201712
3                    1                    28.0000                                 201801
3                    1                    28.0000                                 201802
3                    1                    28.0000                                 201803
3                    1                    20.0000                                 201804
3                    1                    20.0000                                 201805
3                    1                    19.0000                                 201806
3                    1                    19.0000                                 201807
3                    1                    27.0000                                 201808

(60 rows affected)



--

Enjoy 🙂

Please add comment(s) if you have one or multiple solutions in mind. Thank You.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Performance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | Multiple ways to add Date and Time to a DATETIME | SQL Interview Question

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | Multiple ways to add Date and Time to a DATETIME | SQL Interview Question

This was asked to one of my developer by a Client in a technical interview so I thought I must share it with you guys. In this puzzle you have 2 variables one is DATE and other is TIME and you have to add both to get a DATETIME. Please check out the sample input and the expected output.

Sample Input

Date Time
2018-08-10 07:48:46.4566667

Expected Output

DateTime
2018-08-10 07:48:46.457

Script – DDL and INSERT Sample Data

--

DECLARE @Dt DATE = '2018-08-10' , @Tm Time = '07:48:46.4566667'

--

–SOLUTION 1

--

DECLARE @Dt DATE = '2018-08-10' , @Tm Time = '07:48:46.4566667'
SELECT CAST(@Dt AS DATETIME) + CAST(@Tm AS DATETIME) [DateTime]
GO

--

OUTPUT – 1

--

DateTime
-----------------------
2018-08-10 07:48:46.457

(1 row affected)


--

–SOLUTION 2

--

DECLARE @Dt DATE = '2018-08-10' , @Tm Time = '07:48:46.4566667'
SELECT 
	DATEADD(MILLISECOND, DATEDIFF(MILLISECOND, '00:00:00', @Tm), CONVERT(DATETIME, @Dt))
	[DateTime]
GO

--

OUTPUT – 2

--

DateTime
-----------------------
2018-08-10 07:48:46.457

(1 row affected)


--

–SOLUTION 3

--

DECLARE @Dt DATE = '2018-08-10' , @Tm Time = '07:48:46.4566667'
SELECT DATEADD(DAY,DATEDIFF(DAY, 0, @Dt),CAST(@Tm AS DATETIME))
	 [DateTime]
GO

--

OUTPUT – 3

--

DateTime
-----------------------
2018-08-10 07:48:46.457

(1 row affected)


--

–SOLUTION 4

--

DECLARE @Dt DATE = '2018-08-10' , @Tm Time = '07:48:46.4566667'
SELECT CAST(CONCAT(@Dt,' ',CAST(@Tm AS VARCHAR(12))) AS DATETIME)
	[DateTime]
GO

--

OUTPUT – 4

--


DateTime
-----------------------
2018-08-10 07:48:46.457

(1 row affected)


--

Enjoy 🙂

Please add comment(s) if you have one or multiple solutions in mind. Thank You.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Performance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | The Grouping Puzzle – A Single SELECT | SQL Interview Question

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | The Grouping Puzzle – A Single SELECT | SQL Interview Question

In this puzzle you have to have find the sum of sales for each employee. The catch here is that for inactive employees(IsActive=0) group the sum under Inactive name and rest under their respective names. Another catch is that you need to do this in a single select.Please check out the sample input and the expected output.

Sample Input

EmpName SaleDate SaleAmount IsActive
Pawan 2018-08-07 10:18:28.663 2500.00 1
Pawan 2018-08-07 10:18:28.663 3000.00 1
Avtaar 2018-08-07 10:18:28.663 800.00 1
Avtaar 2018-08-07 10:18:28.663 1000.00 1
Kishan 2018-08-07 10:18:28.663 2800.00 1
Kishan 2018-08-07 10:18:28.663 3000.00 1
Nimit 2018-08-07 10:18:28.663 500.00 1
Nimit 2018-08-07 10:18:28.663 800.00 1
K 2018-08-07 10:18:28.663 1000.00 0
L 2018-08-07 10:18:28.663 1000.00 0
M 2018-08-07 10:18:28.663 500.00 0
J 2018-08-07 10:18:28.663 2500.00 0

Expected Output

EmpName SaleAmount
Avtaar 1800.00
Inactive 5000.00
Kishan 5800.00
Nimit 1300.00
Pawan 5500.00

Script – DDL and INSERT Sample Data

--

CREATE TABLE dbo.tbl_sales
(  
    EmpName VARCHAR(256),
    SaleDate DATETIME,
    SaleAmount DECIMAL(18,2),
    IsActive BIT
)
GO

INSERT INTO tbl_sales VALUES 
('Pawan',GETDATE(),2500.00,1),
('Pawan',GETDATE(),3000.00,1),
('Avtaar',GETDATE(),800.00,1),
('Avtaar',GETDATE(),1000.00,1),
('Kishan',GETDATE(),2800.00,1),
('Kishan',GETDATE(),3000.00,1),
('Nimit',GETDATE(),500.00,1),
('Nimit',GETDATE(),800.00,1),
('K',GETDATE(),1000.00,0),
('L',GETDATE(),1000.00,0),
('M',GETDATE(),500.00,0),
('J',GETDATE(),2500.00,0)
GO

SELECT * FROM tbl_sales
GO

--

–SOLUTION 1

--

SELECT DISTINCT IIF(IsActive = 0, 'Inactive',EmpName) EmpName , 
				SUM(SaleAmount) OVER (PARTITION BY  IIF(IsActive = 0, 'Inactive',EmpName))
				[SaleAmount]
FROM tbl_sales
GO

--

OUTPUT – 1

--

EmpName         SaleAmount
--------------- ---------------
Avtaar          1800.00
Inactive        5000.00
Kishan          5800.00
Nimit           1300.00
Pawan           5500.00

(5 rows affected)

--

–SOLUTION 2

--

SELECT IIF(IsActive = 0, 'Inactive',EmpName) EmpName 
	  ,SUM(SaleAmount) [SaleAmount]
FROM tbl_sales
GROUP BY IIF(IsActive = 0, 'Inactive',EmpName)
GO
--

OUTPUT – 2

--

EmpName         SaleAmount
--------------- ---------------
Avtaar          1800.00
Inactive        5000.00
Kishan          5800.00
Nimit           1300.00
Pawan           5500.00

(5 rows affected)

--

Enjoy 🙂

Please add comment(s) if you have one or multiple solutions in mind. Thank You.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Performance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com

SQL Puzzle | The Compare * 100 Puzzle | SQL Interview Question

Tags

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,


SQL Puzzle | The Compare * 100 Puzzle | SQL Interview Question

In this puzzle you have to generate a new column called FinalOutput. The logic for the new column is that you have to check if value of Length1 = Length1 * 100 for each value for col1 and col2, If yes then you need to concatenate the small value with the larger value separating by |. If not then show the value directly. Can you do that using a single select?. Please check out the sample input and the expected output.

Sample Input

col1 col2 Length1
A APD 23
A APD 2300
A APD 45
A APD 78
B BPD 45
B BPD 4500
B BPD 450
NULL CPD 98
NULL CPD 9800
NULL CPD 983

Expected Output

col1 col2 Length1 FinalOutput
A APD 23 23 | 2300
A APD 2300 23 | 2300
A APD 45 45
A APD 78 78
B BPD 45 45 | 4500
B BPD 4500 45 | 4500
B BPD 450 450
NULL CPD 98 98 | 9800
NULL CPD 9800 98 | 9800
NULL CPD 983 983

Script – DDL and INSERT Sample Data

--

CREATE Table Combine 
(
    col1 varchar(MAX),
    col2 varchar(MAX),
    Length1 float
)
GO

INSERT INTO Combine VALUES
('A','APD',23),
('A','APD',2300),
('A','APD',45),
('A','APD',78),
('B','BPD',45),
('B','BPD',4500),
('B','BPD',450),
('NULL','CPD',98),
('NULL','CPD',9800),
('NULL','CPD',983)
GO

SELECT * FROM Combine
GO

--

–SOLUTION 1 : THE SUM … OVER() WITH IIF

--

SELECT a.*, 
		IIF
		(
			b.Length1 IS NOT NULL,
			CONCAT(IIF(a.Length1>b.Length1,b.Length1,a.Length1),' | ',IIF(a.Length1>b.Length1,a.Length1,b.Length1)),
			CONCAT(a.Length1,'')
		)FinalOutput 
FROM Combine
a LEFT JOIN Combine b ON a.col1 = b.col1 AND a.col2 = b.col2
AND ( a.Length1 * 100 = b.Length1 OR a.Length1 = b.Length1 * 100 )

--

OUTPUT – 1

--

col1       col2         Length1                FinalOutput 
---------- ------------ ---------------------- ----------- 
A          APD          23                     23 | 2300   
A          APD          2300                   23 | 2300   
A          APD          45                     45          
A          APD          78                     78          
B          BPD          45                     45 | 4500   
B          BPD          4500                   45 | 4500   
B          BPD          450                    450         
NULL       CPD          98                     98 | 9800   
NULL       CPD          9800                   98 | 9800   
NULL       CPD          983                    983         
                                                           
(10 rows affected)                                         

--

Enjoy 🙂

Please add comment(s) if you have one or multiple solutions in mind. Thank You.

Pawan Khowal

Pawan is a SQL Server Developer. If you need any help in writing code/puzzle or training please email at – pawankkmr”AT”gmail.com. Meanwhile please go throgh the top pages from his blog.

Page Detail URL
☛ SQL Advance Puzzles https://msbiskills.com/tsql-puzzles-asked-in-interview-over-the-years/
☛ SQL Tricky Queries https://msbiskills.com/sql-puzzles-finding-outputs/
☛ SQL Server Performance tuning Articles https://msbiskills.com/sql-performance-tuning/
☛ SQL Server Articles https://msbiskills.com/t-sql/
☛ SQL Interview Questions & Answers https://msbiskills.com/sql-server-interview-questions/

My SQL Groups on Facebook:

1. If you like this post, you may want to join my SQL SERVER Interview Puzzles/Interview Questions on Facebook: https://www.facebook.com/groups/1430882120556342/

2. If you like this post, you may want to join my SQL Server Puzzles on Facebook:
https://www.facebook.com/groups/206594023090781/

My SQL Page on Facebook:

2. For all the updates you may follow my page -> https://www.facebook.com/MSBISkillscom-1602779883299222/

Enjoy !!! Keep Learning

Http://MsbiSkills.com