我需要将select语句从Oracle转换为SQL Server。但是脚本中有关键点,我无法弄清楚。
这是选择语句
(\S+)(\w)\1{2,}(\S+)
当我在SQL Server中运行它时,它给了我这个错误:
关键字“ AS”附近的语法不正确
在枢轴所在的行。
答案 0 :(得分:1)
我将使用条件聚合函数进行数据透视。
它可以在同一查询中在SQL Server或Oracle上工作。
SELECT
user_id,
cart_id,
order_total,
date_abandonment,
date_abandonment_first,
fl_abandoned_cart,
MAX(CASE WHEN PRODUCT_NUM = 1 THEN quantity END) p1_quantity
MAX(CASE WHEN PRODUCT_NUM = 1 THEN product_name END) p1_product_name,
MAX(CASE WHEN PRODUCT_NUM = 1 THEN product_description END) p1_product_description,,
MAX(CASE WHEN PRODUCT_NUM = 1 THEN product_type_description END) p1_product_type_description
MAX(CASE WHEN PRODUCT_NUM = 1 THEN product_duration END) p1_product_duration,
MAX(CASE WHEN PRODUCT_NUM = 1 THEN unit_price END) p1_unit_price,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN quantity END) p2_quantity,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN product_name END) p2_product_name,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN product_description END) p2_product_description,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN product_type_description END) p2_product_type_description,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN product_duration END) p2_product_duration,
MAX(CASE WHEN PRODUCT_NUM = 2 THEN unit_price END) p2_unit_price,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN quantity END) p3_quantity,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN product_name END) p3_product_name,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN product_description END) p3_product_description,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN product_type_description END) p3_product_type_description,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN product_duration END) p3_product_duration,
MAX(CASE WHEN PRODUCT_NUM = 3 THEN unit_price END) p3_unit_price,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN quantity END) p4_quantity,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN product_name END) p4_product_name,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN product_description END) p4_product_description,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN product_type_description END) p4_product_type_description,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN product_duration END) p4_product_duration,
MAX(CASE WHEN PRODUCT_NUM = 4 THEN unit_price END) p4_unit_price,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN quantity END) p5_quantity,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN product_name END) p5_product_name,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN product_description END) p5_product_description,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN product_type_description END) p5_product_type_description,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN product_duration END) p5_product_duration,
MAX(CASE WHEN PRODUCT_NUM = 5 THEN unit_price END) p5_unit_price
FROM Cart
GROUP BY
user_id,
cart_id,
order_total,
date_abandonment,
date_abandonment_first,
fl_abandoned_cart