select exists


is it possible to select EXISTS directly as a bit?

Question :  I was wondering if it's possible to do something like this (which doesn't work):

select cast( (exists(select * from theTable where theColumn like 'theValue%') as bit)

Seems like it should be doable, but lots of things that should work in SQL don't ;) I've seen workarounds for this (SELECT 1 where... Exists...)

but it seems like I should be able to just cast the result of the exists function as a bit and be done with it.

Answer:

If you must return a conditional bit 0/1 another way is to:

SELECT CAST(
   CASE WHEN EXISTS(SELECT * FROM theTable where theColumn like 'theValue%') THEN 1 
   ELSE 0 
   END 
AS BIT)

Or without the cast:

SELECT
   CASE
       WHEN EXISTS( SELECT 1 FROM theTable WHERE theColumn LIKE 'theValue%' )
            THEN 1 
       ELSE 0 
   END
 

参考资料:

       sql - is it possible to select EXISTS directly as a bit? - Stack Overflow

  Subqueries in Google Standard SQL  |  Cloud Spanner  |  Google Cloud

  MySQL Exists - javatpoint