Dears请帮我传递多个CP以从下表中的任何一个查找Process ID。
我想做这样的事情:
declare @CP varchar(30)
Set @CP ='684980','123123','456456'
select ESuser.tb_pt_servicerequest.process_instance_id, ESuser.tb_pt_servicerequest.cpno
from
ESuser.tb_pt_servicerequest where ESuser.tb_pt_servicerequest.cpno in (@CP)
union all
select ESuser.tb_pt_additionalcp.process_instance_id, ESuser.tb_pt_additionalcp.cpno
from
ESuser.tb_pt_additionalcp where ESuser.tb_pt_additionalcp.cpno in (@CP)
或者喜欢这个
select * from XXXX, WWW, MMMM, KKK where CP_NO in ('123123','123321','123567')
使用这个, 但是在这里我无法传递多个cp号来获得回报: 现在在这个变量中我可以传递一个值,如' 123123'并且可以得到结果, 但如果我将查询更改为喜欢(' 123123',' 123321')而不是=(' 123123'), 我无法得到结果。 :(
declare @CP varchar(10)
Set @CP ='684980 '
select ESuser.tb_pt_servicerequest.process_instance_id, ESuser.tb_pt_servicerequest.cpno
from
ESuser.tb_pt_servicerequest where ESuser.tb_pt_servicerequest.cpno = @CP
union all
select ESuser.tb_pt_additionalcp.process_instance_id, ESuser.tb_pt_additionalcp.cpno
from
ESuser.tb_pt_additionalcp where ESuser.tb_pt_additionalcp.cpno = @CP
union all
select ESuser.tb_pt_new_addtionalcp.process_instance_id, ESuser.tb_pt_new_addtionalcp.cpno
from
ESuser.tb_pt_new_addtionalcp where ESuser.tb_pt_new_addtionalcp.cpno = @CP
union all
select ESuser.tb_pt_vip_service_request.process_instance_id,
ESuser.tb_pt_vip_service_request.cpno
from
ESuser.tb_pt_vip_service_request where ESuser.tb_pt_vip_service_request.cpno = @CP
union all
select
ESuser.tb_pt_vip_additional_cp.process_instance_id,ESuser.tb_pt_vip_additional_cp.cpno
from
ESuser.tb_pt_vip_additional_cp where ESuser.tb_pt_vip_additional_cp.cpno = @CP
union all
select ESuser.tb_pt_servicerequestbypass.process_instance_id, ESuser.tb_pt_servicerequestbypass.cpno
from
ESuser.tb_pt_servicerequestbypass where ESuser.tb_pt_servicerequestbypass.cpno = @CP
答案 0 :(得分:1)
您必须使用表变量。这就是你如何声明并填充它:
DECLARE @CP TABLE (CP_ID VARCHAR(10))
INSERT INTO @CP VALUES ('123123'),('123321'),('123567')
这就是你在查询中使用它的方法:
SELECT ESuser.tb_pt_servicerequest.process_instance_id,
ESuser.tb_pt_servicerequest.cpno
FROM ESuser.tb_pt_servicerequest
WHERE ESuser.tb_pt_servicerequest.cpno IN (SELECT CP_ID FROM @CP)