--1. 使用集合操作符:将两个或多个查询返回的行组合起来 select * from product_types; select * from products; select * from more_products;
-- 使用union all操作符:返回查询所检索出的所有行,包括重复行 select product_id, product_type_id, product_name from products union all select prd_id, prd_type_id, prd_name from more_products order by 1;
-- 修改数据 update more_products set prd_name = '绿茶' where prd_id = 1; select * from more_products for update;
-- 使用union 操作符:返回查询所检索出的所有非重复行 select product_id, product_type_id, product_name from products union select prd_id, prd_type_id, prd_name from more_products order by 1;
-- 使用intersect操作符:返回两个查询所检索出的共有行 select product_id, product_type_id, product_name from products intersect select prd_id, prd_type_id, prd_name from more_products order by 1;
-- 使用minus操作符:返回将第二个查询检索出的行从第一个检索出的行中减去之后剩余的行(即第一个查询检索出的行减去共有行) select product_id, product_type_id, product_name from products minus select prd_id, prd_type_id, prd_name from more_products order by 1;
-- 组合使用集合操作符:集合操作符默认是从上至下求值,最好用括号 (select product_id, product_type_id, product_name from products union select prd_id, prd_type_id, prd_name from more_products) intersect select product_id, product_type_id, product_name from products_changes;
-- 使用translate(x, from_string, to_string)函数 select translate('select', 'select', 'xwq') from dual; select product_id, product_name, translate(product_name, '绿茶哇生包' ,'abcdf') from products
--===============================使用case表达式=============================== -- 使用简单case表达式 select product_id, product_type_id, case product_type_id when 1 then '饮料' when 2 then '食品' else '其它' end as product_type_name from products; -- 使用搜索case表达式 select product_id, product_type_id, case when product_type_id = 1 then '饮料' when product_type_id = 2 then '食品' else '其它' end as product_type_name from products;
-- 在搜索case表达式中可以用操作符 select product_id,product_type_id, price, case when price < 30 and price > 0 then '便宜' when price < 90 and price > 30 then '还好' else '好贵' end as price_level from products;