The*_*eek 5 sql t-sql sql-server sql-server-2005
我有一张表来存储县评估区的数据.我想添加一个计算列来告诉我该属性是否属于所有者.如果属性地址与所有者地址相同,我将"owner occupied"定义为true,否则为false.
由于来自县的源数据中的数据输入不准确,如果我进行严格的文本比较,我会得到很多虚假的非自住结果.所以我想测试"如果房产的街道名称不在所有者的地址中,或者房产的地址编号不在房主的地址中,那么这是一个非房东占用的房产"
我写了以下内容:
alter table appriasaldata add
IsOwnerOccupied as
case
((charindex(locastreetnumber, owneraddress) = 0) or (charindex(locastreetname, owneraddress) = 0))
when TRUE THEN 1 ELSE 0
end
SQL Server不喜欢CHARINDEX函数之后的=符号.我怎样才能将其重写为SQL Server可接受的?(如果重要的话,我正在使用SQL Server 2005.)
表达式在SQL Server中不能返回true或false.(没有布尔类型)但是你可以移动整个表达式when:
alter table appriasaldata add
IsOwnerOccupied as
case when ((charindex(locastreetnumber, owneraddress) = 0)
or (charindex(locastreetname, owneraddress) = 0))
THEN 1 ELSE 0
end
Run Code Online (Sandbox Code Playgroud)