SQL Puzzle | Find SQL but NOT with T SQL keyword Puzzle

In this puzzle you have to find records where Vals column contains SQL keyword and the same record should not contain T SQL keyword. Please check the sample input and the expected output. The challenge is to do this in a single select

Welcome12$

Sample Input

Id Vals
1 Pawan likes Only T SQL.
2 Pawan like T SQL AND Oracle SQL.
3 Pawan like T SQL and little my SQL
4 Pawan Like LegiTest and SQL Server
5 Pawan Like Puzzles
6 Pawan likes T SQL and little cookies
7 T SQL T SQL

Expected Output

Id Vals
2 Pawan like T SQL AND Oracle SQL.
3 Pawan like T SQL and little my SQL
4 Pawan Like LegiTest and SQL Server
6 Pawan likes T SQL and little SQL

Script

Use below script to create table and insert sample data into it.

--

CREATE TABLE FindMe
(
	 Id INT 
	,Vals NVARCHAR(200)
)
GO

INSERT INTO FindMe VALUES  
 (1,N'Pawan likes Only T SQL.')
,(2,N'Pawan like T SQL AND Oracle SQL.')
,(3,N'Pawan like T SQL and little my SQL')
,(4,N'Pawan Like LegiTest and SQL Server')
,(5,N'Pawan Like Puzzles')
,(6,N'Pawan likes T SQL and little cookies')
,(7,N'T SQL T SQL')
GO

SELECT * FROM FindMe
GO


--

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

Add your solution(s) in the comments section or send you solution(s) to pawankkmr@gmail.com

SOLUTION – 1 | This solution was given by my friend ASHUTOSH

--


SELECT * FROM FindMe 
WHERE CHARINDEX ('SQL' , REPLACE(Vals,'T SQL','-9'))  > 0


--

Output-1

--                            

Id          Vals
----------- --------------------------------------------
2           Pawan like T SQL AND Oracle SQL.
3           Pawan like T SQL and little my SQL
4           Pawan Like LegiTest and SQL Server
6           Pawan likes T SQL and little SQL

(4 rows affected)

--

SOLUTION – 2

--


SELECT *
FROM FindMe
WHERE  (LEN(Vals)-LEN(REPLACE(Vals,'T SQL','')))/DATALENGTH('T SQL') 
       != (LEN(Vals)-LEN(REPLACE(Vals,'SQL','')))/DATALENGTH('SQL')


--

Output-2

--                            

Id          Vals
----------- ---------------------------------------
2           Pawan like T SQL AND Oracle SQL.
3           Pawan like T SQL and little my SQL
4           Pawan Like LegiTest and SQL Server
6           Pawan likes T SQL and little SQL

(4 rows affected)

--

Add a comment if you have any other or better solution in mind. I would love to learn it. We all need to learn.

Author Introduction: Pawan Khowal

Pawan is a SQL Server Expert. 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 Perfomance 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