开发者社区> 问答> 正文

SQL Server查询根据两个表中的条件合并两个列值

我需要根据条件将两个列值分成一列

col1   col 2
--------------
 18      21
 21      19
 22      25

这里的19重复到21,也21重复到18。我要求基于参数19在一列中获取所有值。没有主意请帮助我。

结果应该是

col3
18
21
19

我已经尝试过查询,但是有时它会给出不容置疑的结果,例如如果一项重复很多,那么在临时表中为同一条记录创建了很多条目

在开始声明@sqlquery nvarchar(max)时更改proc sp_listallduplicates(@parentid varchar(50)= 0,@pid varchar(50)= 0); 声明@sqlnext varchar(500); 声明@sqlcreatequery nvarchar(max);

从d1中选择isid,其中did = @ parentid和pid = @ pid set @ sqlcreatequery ='创建表tbl_tempduplicate(S_No int IDENTITY(1,1)NOT NULL,isid int)'; EXEC sp_executeSQL @sqlcreatequery; --set @ sqlquery ='插入tbl_tempduplicate(isid)值('+ @ parentid +')';

--EXEC sp_executeSQL @sqlquery;
DECLARE @I INT=1;

WHILE(1 = 1)开始

print @sqlnext;

if(@sqlnext!='')开始SET @ sqlnext =(从d1中选择isid,其中did = @ sqlnext和pid = @ pid); if(@sqlnext为null)开始中断; 结束结束否则开始SET @ sqlnext =(从d1中选择isid,其中did = @ parentid和pid = @ pid); 结束设置@ sqlquery ='插入tbl_tempduplicate(isid)值('+ @ sqlnext +')'; EXEC sp_executeSQL @sqlquery; 如果@sqlnext> = 0继续;

结束

展开
收起
心有灵_夕 2019-12-22 14:39:56 861 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载