我有这张table:
std_id std_type std_dept target
1 type-1 ALL 15
2 type-1 HRD 10
3 type-2 ALL 1
4 type-2 ACCTG 5
5 type-3 ALL 5
6 type-4 ALL 25
``` `std_dept` 有价值的 `ALL` 手段 `std_target` 对于每个 `std_type` 适用于所有部门 `std_dept` 使用特定的dept值,重写值form point(1)。
所以,我的问题是假设我来自 `HRD` dept和我希望结果集如下:
std_id std_type std_dept target
2 type-1 HRD 10
3 type-2 ALL 1
5 type-3 ALL 5
6 type-4 ALL 25
我真的很想展示我的作品,但我一点也不知道,我不知道该怎么做 `select * from std_table (for each std_type) where std_dept='HRD' if exist else get from std_dept='ALL'` .
如果不是代码,我需要指针
2条答案
按热度按时间zzlelutf1#
这听起来像是你想加权,所以如果你是人力资源部的,那么你想要人力资源部或全部,如果你想要acctg,那么你想要acctg或全部,对于类型1-4。
您可以按std\u类型分组以使它们不同,然后按该类型排序以使顺序正确。对于加权,您可以创建一个列,该列是与where子句中使用的相同值进行比较的结果,例如:
hsvhsicv2#
你可以用
NOT EXISTS
和相关子查询:dbfiddle演示