我需要创建一个拉只有CUSTOMER_NO列的查询(因为软件限制是这样的,我不能从外部代码时)。但我需要能够将数据通过create_dt排序(反向)列。该代码/ SQL是制约我在使用,以便通过一些数据已经出现的int select语句排序,因为以下。
我不能拥有它出现在那里 - 是有没有解决这个办法吗?
Select Distinct top 3500 a.customer_no
From T_CUSTOMER a WITH (NOLOCK)
JOIN (Select a1.customer_no From VXS_CUST_TKW a1 WITH (NOLOCK) Where a1.tkw in (141)) as e ON e.customer_no = a.customer_no
Where 1 = 1
order by a.create_dt desc
当然可以。您的查询看起来像SQL服务器,在那里你想要的东西,这将有可能做的事:
Select top 3500 a.customer_no
From T_CUSTOMER a WITH (NOLOCK) JOIN
(Select a1.customer_no
From VXS_CUST_TKW a1 WITH (NOLOCK)
Where a1.tkw in (141)
) e
ON e.customer_no = a.customer_no
Where 1 = 1
group by a.customer_no
order by max(a.create_dt) desc;
在MySQL等效查询将如下所示:
Select a.customer_no
From T_CUSTOMER a JOIN
(Select a1.customer_no
From VXS_CUST_TKW a1
Where a1.tkw in (141)
) e
ON e.customer_no = a.customer_no
Where 1 = 1
order by a.create_dt desc
limit 3500;
我删除了distinct
,因为它可能没有必要。如果是,加回。
这看起来并不像MySQL。
反正...你可以尝试有序子选择IE
From (select * from T_CUSTOMER order by create_dt) a WITH (NOLOCK)
我希望这有帮助。
使用子查询,包括你的排序列。然后,主查询可以只返回你所关心的列:
SELECT customer_no
FROM (
Select top 3500 a.customer_no, a.create_dt
From T_CUSTOMER a WITH (NOLOCK) JOIN
(Select a1.customer_no
From VXS_CUST_TKW a1 WITH (NOLOCK)
Where a1.tkw in (141)
) e
ON e.customer_no = a.customer_no
Where 1 = 1
order by a.create_dt desc
)