Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CASE WHEN EXIST return 0 when should return 1

Tags:

sql

t-sql

In my San_Imovel table, I have a lot of property, and I would like to know if has some duplicates (Property in the same address). So, I get a address that I have sure that are many property in this same address, but in my CASE WHEN EXIST return 0.

Could someone help me ?

In the SELECT statement inside my CASE WHEN EXITS return 47 rows if I run it alone.

QUERY

declare @cityName as varchar(100)
declare @neighborName as varchar(100)
declare @zipcode as varchar(8)
declare @complement as varchar(100)
declare @street as varchar(100)
declare @number as varchar(6)
set @cityName = 'Sao Paulo'
set @neighborName = 'Tupi'
set @zipcode = '31840050'
set @complement = '123'
set @street = 'Furquim werneck'
set @number = '5989828'
;WITH cte
AS (
    SELECT City_Id, State_Id, CityName
    FROM City
    WHERE (CityName COLLATE SQL_Latin1_General_CP1_CI_AI) LIKE '' + @cityName + ''
)
select 
CASE
WHEN EXISTS (
        SELECT San_Imovel.Imovel_Id 
        FROM San_Imovel
        WHERE San_Imovel.Number = @number 
        AND San_Imovel.ZipCode = @zipcode
        AND San_Imovel.Complement = @complement
        AND San_Imovel.Street = @street
        AND San_Imovel.City_Id = cte.City_Id
    ) 
    THEN 1
    ELSE 0
END AS ExistDuplicate
from cte

DATA SAMPLE

Imovel_Id bigint
Number int
Complement varchar
Street varchar
City_Id int
Zipcode varchar

Imovel_Id     Number    Complement   Street            City_Id   ZipCode
433669        5989828   123          Furquim Werneck   2754      31840050
433670        5989828   123          Furquim Werneck   2754      31840050
433671        5989828   123          Furquim Werneck   2754      31840050
like image 875
Lucas_Santos Avatar asked Mar 09 '26 02:03

Lucas_Santos


1 Answers

You should pass your "number" parameter as integer if that's its data type in the db.

declare @number as int
set @number = 5989828
like image 147
LittleSweetSeas Avatar answered Mar 10 '26 18:03

LittleSweetSeas



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!