gpt4 book ai didi

SQL Server 的WITH 子句

转载 作者:行者123 更新时间:2023-12-02 19:30:21 25 4
gpt4 key购买 nike

使用WITH子句时出现此错误

Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
Msg 102, Level 15, State 1, Procedure ViewComplaintbyProfile, Line 29
Incorrect syntax near ','.

这是我的程序

ALTER PROCEDURE [dbo].[ViewComplaintbyProfile]

( @ID int


)

AS
BEGIN
SET NOCOUNT ON
WITH
one as
(Select sno = ROW_NUMBER()OVER (order by complaint_id), Complaint_Id, ComplainantName,ComplaintType_id, complaintProfileId,ComplainantProfileId,Description,
Email, Date_Complained, Status, AdminComments, Phone, Evidence,
PLevel = CASE PriorityLevel_id WHEN '1' THEN 'High'
WHEN '2' THEN 'Medium'
WHEN '3' THEN 'Low' END ,
Complaint_Type = CASE ComplaintType_ID WHEN '1' THEN 'Purchased Contact has incorrect details'
WHEN '2' THEN 'Contacted Profile is already married'
WHEN '3' THEN 'Suspect the Profile has fradudelent contect/credentials'
WHEN '4' THEN 'Suspect the Profile has fake picture'
WHEN '5' THEN 'Profile has obscene or inappropriate content'
WHEN '6' THEN 'Report harassment, offensive remarks, etc., by user'
WHEN '7' THEN 'Miscellaneous issue' END,
Status1 = CASE Status WHEN 'New' THEN 1
WHEN 'In-Progress' THEN 2
WHEN 'Closed' THEN 3
END

from Complaints),

two as
(SELECT sno = ROW_NUMBER()OVER (order by complaint_id), Complaint.complaintProfileId,
CASE
WHEN cast(mmbProfiles.MMB_Id as varchar) IS NOT NULL THEN cast(mmbProfiles.MMB_Id as varchar)
WHEN cast(UPPMembership.profile_id as varchar) IS NOT NULL THEN 'UPP'
ELSE 'Not found'
END as MMBId
FROM Complaints Complaint
LEFT JOIN MMBMembership
ON MMBMembership.profile_id = Complaint.complaintProfileId
left JOIN MMB_BusinessProfiles mmbProfiles
ON mmbProfiles.MMB_id = MMBMembership.MMB_id
LEFT JOIN UPPMembership
ON UPPMembership.profile_id = Complaint.complaintProfileId)

SELECT one.*,two.MMBId FROM one join two
on one.sno = two.sno
WHERE (ComplaintType_id = @ID)
END

请帮忙

谢谢太阳

最佳答案

错误消息已经告诉您该怎么做:

.... the previous statement must be terminated with a semicolon.

尝试将 WITH 语句放入其自己的 block 中,方法是在其前面添加分号:

ALTER PROCEDURE [dbo].[ViewComplaintbyProfile]

( @ID int


)

AS
BEGIN
SET NOCOUNT ON

; WITH one AS ......
.........

关于SQL Server 的WITH 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com