Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use SQL Select statement with IF EXISTS sub query?

How to select Boolean value from sub query with IF EXISTS statement (SQL Server)?

It should be something like :

SELECT    TABEL1.Id,    NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID)                   SELECT 'TRUE'                ELSE                   SELECT 'FALSE')  FROM TABEL1 
like image 765
Nalaka526 Avatar asked Oct 18 '11 09:10

Nalaka526


People also ask

Can you do a subquery in a SELECT statement?

A subquery-also referred to as an inner query or inner select-is a SELECT statement embedded within a data manipulation language (DML) statement or nested within another subquery. You can use subqueries in SELECT, INSERT, UPDATE, and DELETE statements wherever expressions are allowed.

How do you use exists in SELECT statement?

The result of EXISTS is a boolean value True or False. It can be used in a SELECT, UPDATE, INSERT or DELETE statement. Syntax: SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name(s) FROM table_name WHERE condition);

What can you substitute for if exists in SQL?

An alternative for IN and EXISTS is an INNER JOIN, while a LEFT OUTER JOIN with a WHERE clause checking for NULL values can be used as an alternative for NOT IN and NOT EXISTS.


2 Answers

Use CASE:

SELECT    TABEL1.Id,    CASE WHEN EXISTS (SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABLE1.ID)        THEN 'TRUE'         ELSE 'FALSE'   END AS NewFiled   FROM TABLE1 

If TABLE2.ID is Unique or a Primary Key, you could also use this:

SELECT    TABEL1.Id,    CASE WHEN TABLE2.ID IS NOT NULL        THEN 'TRUE'         ELSE 'FALSE'   END AS NewFiled   FROM TABLE1   LEFT JOIN Table2     ON TABLE2.ID = TABLE1.ID 
like image 193
ypercubeᵀᴹ Avatar answered Sep 20 '22 16:09

ypercubeᵀᴹ


You can also use ISNULL and a select statement to get this result

SELECT Table1.ID, ISNULL((SELECT 'TRUE' FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID),'FALSE') AS columName, etc FROM TABLE1 
like image 20
Purplegoldfish Avatar answered Sep 18 '22 16:09

Purplegoldfish