如何在SQLServer和Postgresql中实现这一点
I/p o/p如何在SQLServer和Postgresql中实现这一点,sql,Sql,I/p o/p 您似乎希望存在: country Status Flag ind y 1 ind y 1 ind y 1 us y 1 us y 1 us y 1 uk y 0 uk y 0 uk n 0 您还可以使用窗口功能: SELECT t.*, (CASE WHEN EXISTS
您似乎希望
存在
:
country Status Flag
ind y 1
ind y 1
ind y 1
us y 1
us y 1
us y 1
uk y 0
uk y 0
uk n 0
您还可以使用窗口功能:
SELECT t.*,
(CASE WHEN EXISTS (SELECT 1
FROM table t1
WHERE t1.country = t.country AND t1.Status = 'n'
)
THEN 0 ELSE 1
END) AS Flag
FROM table t;
实现什么?哪些数据库,哪些版本?标题和标签包含不同的产品。MySQL!=SQL Server!=PostgreSql你能解释一下旗帜背后的逻辑吗?这个问题现在应该结束了!请阅读并在(按国家划分)上方创建一个
0=COUNT(状态为'n'时为案例,然后为0结束)作为标志
?
SELECT t.*,
(CASE WHEN EXISTS (SELECT 1
FROM table t1
WHERE t1.country = t.country AND t1.Status = 'n'
)
THEN 0 ELSE 1
END) AS Flag
FROM table t;
SELECT t.*,
(CASE WHEN SUM(CASE WHEN [STATUS] = 'n' THEN 1 ELSE 0 END) OVER (PARTITION BY COUNTRY) = 1
THEN 0 ELSE 1
END) AS Flag
FROM table t;