一、用于表格转换
目前我的理解时,如果想要将多列表竖着揪下去,一行变多行。那此时需要重新查询整个表,并添加新列,你看新列中内容的添加方法和原列中内容加入新列的方法如下
原表如下
请你重构 Products 表,查询每个产品在不同商店的价格,使得输出的格式变为(product_id, store, price) 。如果这一产品在商店里没有出售,则不输出这一行。
输出结果表中的顺序不作要求。
查询输出格式请参考下面示例。
Products table:
+------------+--------+--------+--------+
| product_id | store1 | store2 | store3 |
+------------+--------+--------+--------+
| 0 | 95 | 100 | 105 |
| 1 | 70 | null | 80 |
+------------+--------+--------+--------+
Result table:
+------------+--------+-------+
| product_id | store | price |
+------------+--------+-------+
| 0 | store1 | 95 |
| 0 | store2 | 100 |
| 0 | store3 | 105 |
| 1 | store1 | 70 |
| 1 | store3 | 80 |
+------------+--------+-------+
产品0在store1,store2,store3的价格分别为95,100,105。
产品1在store1,store3的价格分别为70,80。在store2无法买到。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rearrange-products-table
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二、根据不同条件进行筛选,然后将两个表上下连在一起,上边条件一筛选出来的,下边是条件二筛选出来的。但是这中方法比较耗时。在进行不同条件的筛选的时候可用右侧法2替代
原表如下:
一个员工可以属于多个部门。
当一个员工加入超过一个部门的时候,他需要决定哪个部门是他的直属部门。
请注意,当员工只加入一个部门的时候,那这个部门将默认为他的直属部门,虽然表记录的值为'N'.
请编写一段SQL,查出员工所属的直属部门。
返回结果没有顺序要求。
示例:
Employee table:
+-------------+---------------+--------------+
| employee_id | department_id | primary_flag |
+-------------+---------------+--------------+
| 1 | 1 | N |
| 2 | 1 | Y |
| 2 | 2 | N |
| 3 | 3 | N |
| 4 | 2 | N |
| 4 | 3 | Y |
| 4 | 4 | N |
+-------------+---------------+--------------+
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/primary-department-for-each-employee
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。