sql - 检查从第二个位置开始的另一列值中是否存在列值sql server
问题描述
我写信是为了检查特定列的第一行值是否等于另一列的第二行值。
例子:
在上面的示例中,对于订单 S1,我正在寻找第一个产品密钥“2”,以便使用第二行中的 ParentProductKey 检查。
如果匹配,则为“是”,否则为“否”。
此外,如果产品密钥匹配 2,3 和 4(通常是其余的),那么第一行也应该是“是”。
如何做到这一点?
解决方案
你似乎想要APPLY
:
SELECT t.*, (CASE WHEN t.ProductKey = t1.ParentProductKey THEN 'Yes' ELSE 'No' END) AS Result
FROM table t OUTER APPLY
( SELECT TOP (1) t1.*
FROM table t1
WHERE t1.sid = t.sid and t1.ProductKey > t.ProductKety
ORDER BY t1.ProductKey
) t1;
推荐阅读
- flutter - 验证在谷歌注册上注册的用户的好方法是什么?
- react-native - 如何使反应原生相机的背景变黑?
- swift - 如何在没有绑定的情况下使用 NSOutlineView
- python-3.x - 禁用 TensorFlow 警告的附加信息
- python - 如何在 3D 散点图中添加平面
- oracle - 在 ubuntu 上安装 Oracle-database-18c-xe 错误 ORA-07445
- javascript - 是否可以在 Angular 8 中调用 yahoo 联系人 API
- maven - 将使用 ant build 和 antrun 插件创建的 jar 添加到 maven 构建依赖项
- actions-on-google - 交易 API 不适用于付款
- r - 如何将不同的 stat_smooths 分配给不同的方面