我有一个要求,我必须根据条件获取一些行,除此之外,输出中还有2行将是*,其他将是一个空行。我正在使用Union的方法来增加2个额外的行 查询:
a.btn {
background-color: transparent;
}
a.btn:hover {
border: 2px solid #000;
background-color: #f00;
}
在上面的查询中,前2个从表中选择PROMO_GROUP给我一个空白行和一个带*值及以下的行,我正常选择根据条件从表PROMO_GROUP中检索数据。 有没有其他最佳方式可以实现这一目标?
答案 0 :(得分:1)
如果您只想在查询中执行此操作,这是最好的方法。您应该从前两个查询中删除from promo_group
部分
但是,如果可以的话,您应该在代码而不是查询中处理此问题
答案 1 :(得分:1)
您需要使用没有FROM子句的SELECT子句创建每个虚拟行(或者在Oracle中,从特殊DUAL表创建,因此它只生成一行),并使用实际查询对这两个虚拟行进行UNION创建。像这样:
SELECT '' as PROMO_GRP_CD , '' as PROMO_GRP_DESC, '' as PROMO_GRP_ALT_DESC FROM DUAL
UNION
SELECT '*' as PROMO_GRP_CD , 'All' as PROMO_GRP_DESC, 'Tous' as PROMO_GRP_ALT_DESC FROM DUAL
UNION
SELECT PROMO_GRP_CD,PROMO_GRP_DESC,PROMO_GRP_ALT_DESC from PROMO_GROUP
WHERE ACC_TYPE = '*' and ACC_SUB_TYPE = '*' and SUBMARKET = '*'
答案 2 :(得分:0)
您可以使用两条记录追加返回的结果(向数组添加两个元素)。结果将是相同的,您不会有{{1}}的开销。
当然,您没有指定用于运行查询的语言。我假设你的语言允许这样做。