Sql server TSQL将这些多案例查询转换为一个查询
我有以下CASE查询,如果找到任何内容,则返回1,否则返回0。我想将它们转换为一个查询,如果其中任何一个为真,则返回1,否则返回0。我怎样才能完成这个Sql server TSQL将这些多案例查询转换为一个查询,sql-server,tsql,Sql Server,Tsql,我有以下CASE查询,如果找到任何内容,则返回1,否则返回0。我想将它们转换为一个查询,如果其中任何一个为真,则返回1,否则返回0。我怎样才能完成这个 SELECT CASE WHEN count(PLACE.CODE) > 0 THEN 1 ELSE 0 END FROM PLACE WHERE STYLE = 'RED' AND RULES = 'NO' SELECT CASE WHEN count(GARDEN.AREA) > 0 THEN 1 ELSE 0 END FR
SELECT CASE WHEN count(PLACE.CODE) > 0 THEN 1 ELSE 0 END
FROM PLACE
WHERE STYLE = 'RED'
AND RULES = 'NO'
SELECT CASE WHEN count(GARDEN.AREA) > 0 THEN 1 ELSE 0 END
FROM GARDEN
WHERE PLACE = 'GROUND'
AND MAZE = '1'
SELECT CASE WHEN count(place_area.AVAILABLE_AREA) > 0 THEN 1 ELSE 0 END
FROM PLACE_AREA as place_area
INNER JOIN USED_PLACE as used_place
ON used_place.COLOR = 'RED'
AND used_place.MAKE = 'INDUSTRY'
WHERE place_area.CODE = 'FLOOR'
AND place_area.DANCE = '0'
如果我理解正确,您可以
union all
结果并计算sum
,如果sum>0
,则至少有一个1
Select Case When Sum(x.col) > 0 THEN 1 ELSE 0 END from
(
SELECT CASE WHEN count(PLACE.CODE) > 0 THEN 1 ELSE 0 END as col
FROM PLACE
WHERE STYLE = 'RED'
AND RULES = 'NO'
Union All
SELECT CASE WHEN count(GARDEN.AREA) > 0 THEN 1 ELSE 0 END as col
FROM GARDEN
WHERE PLACE = 'GROUND'
AND MAZE = '1'
Union All
SELECT CASE WHEN count(place_area.AVAILABLE_AREA) > 0 THEN 1 ELSE 0 END as col
FROM PLACE_AREA as place_area
INNER JOIN USED_PLACE as used_place
ON used_place.COLOR = 'RED'
AND used_place.MAKE = 'INDUSTRY'
WHERE place_area.CODE = 'FLOOR'
AND place_area.DANCE = '0'
) x
如果我理解正确,您可以
union all
结果并计算sum
,如果sum>0
,则至少有一个1
Select Case When Sum(x.col) > 0 THEN 1 ELSE 0 END from
(
SELECT CASE WHEN count(PLACE.CODE) > 0 THEN 1 ELSE 0 END as col
FROM PLACE
WHERE STYLE = 'RED'
AND RULES = 'NO'
Union All
SELECT CASE WHEN count(GARDEN.AREA) > 0 THEN 1 ELSE 0 END as col
FROM GARDEN
WHERE PLACE = 'GROUND'
AND MAZE = '1'
Union All
SELECT CASE WHEN count(place_area.AVAILABLE_AREA) > 0 THEN 1 ELSE 0 END as col
FROM PLACE_AREA as place_area
INNER JOIN USED_PLACE as used_place
ON used_place.COLOR = 'RED'
AND used_place.MAKE = 'INDUSTRY'
WHERE place_area.CODE = 'FLOOR'
AND place_area.DANCE = '0'
) x
我得到的
列名'col'
无效,请注意您案例结尾处的列,因为statementah遗漏了该列。感谢我得到了无效的列名“col”
,请注意案例结尾处的col,因为statementah遗漏了这一点。谢谢