SQL:有两列新旧SKUS.如果有新的sku,需要将其拉入一列

  • 本文关键字:一列 两列 新旧 SKUS SQL 如果 sku sql case
  • 更新时间 :
  • 英文 :


我有两列表1中的数据,它们有SKU编号和新SKU编号。我的目标是将这些数据作为单列进行查询,如"所需"表中所示

+-------+--------+    +---------+
| SKU   | NEW_SKU|    | Desired |
+-------+--------+    |---------+
| null  | 1      |    | 1       |
| null  | 1      |    | 1       |
|  2    | null   |    | 2       |
|  2    | 3      |    | 3       |
|  2    | 5      |    | 5       |
+-------+--------+    +---------+

目前我有:

SELECT 
SKU
CASE WHEN (SKU IS NOT NULL AND NEW_SKU IS NOT NULL) THEN new_sku
WHEN (SKU IS NULL AND NEW_SKU IS NOT NULL) THEN new_sku
ELSE SKU END AS Product_number
FROM Table1

此处使用COALESCE

SELECT SKU, NEW_SKU, COALESCE(NEW_SKU, SKU) AS Product_number
FROM Table1;

如上所述,如果COALESCE函数不是NULL,则它将使用NEW_SKU值,否则将回退到使用SKU值。

最新更新