希望这达到目的,您必须利用lead()聚合函数来获取下一行。您可以在带有表和记录的dbfiddle链接中找到完整的解决方案,以显示查询的工作方式。该解决方案适用于SQLSEVER 2019。 DECLARE @frase VARCHAR (100)
DECLARE MICURSOR CURSOR FOR SELECT caracter FROM t1
OPEN MICURSOR
FETCH NEXT FROM MICURSOR
WHILE @@fetch_status = 0
BEGIN
SELECT t1.caracter FROM t1 INNER JOIN t2
ON t2.frase LIKE CONCAT('%', t1.caracter,'%')
UPDATE t1 SET caracter= 'caracter' + '(@frase-1)'
FETCH NEXT FROM MICURSOR INTO @frase
END
CLOSE MICURSOR
DEALLOCATE MICURSOR
根据与SQL中其他表的重合,来自同一字段的合并行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据与SQL中其他表的重合,来自同一字段的合并行?相关的知识,希望对你有一定的参考价值。
我尝试从表caracter
上载字段t1
时遇到问题。如果要在caracter
的frase
中显示该值,请与前一个值合并。例如,如果在t2
中找到x,y或z,并且这些值出现在caracter
的frase
中,则我想将x,y和z与t2
中的上一个值合并。
t1
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9TM3RNMy5wbmcifQ==” alt =“在此处输入图像说明”>“ >>
t2
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9weVp6Ny5qcGcifQ==” alt =“在此处输入图像描述”>
这应该是结果
t1
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS85Z2pHTi5wbmcifQ==” alt =“在此处输入图像描述”>“ >>
我尝试了一个游标,但由于我在set处引用错误,因此无法正常工作,以前我尝试了while循环,但结果相同。
caracter
我在尝试从表t1上传田野角色时遇到问题。我想从caracter中获取该值,如果它在t2的frase中出现,则为先前的值。例如,如果找到x,y或...
https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=71510d727bb04478383887e2e8ab3a52应用脚本后的输出,
update t1 set t1.caracter = concat(t1.caracter,lg)
from
(select id_val,ver,caracter,lead(caracter) over (order by id_val) lg from t1) tab,t1
where lg in (select frase from t2)
and tab.caracter = t1.caracter;
delete from t1 where caracter in (select frase from t2);
select * from t1;
id_val ver caracter
1 abc abc
1 abc 3
1 abc x
1 abc 2
1 abc y
2 def def
2 def 5
2 def y
2 def 9
2 def z
希望这达到目的,您必须利用lead()聚合函数来获取下一行。您可以在带有表和记录的dbfiddle链接中找到完整的解决方案,以显示查询的工作方式。该解决方案适用于SQLSEVER 2019。 DECLARE @frase VARCHAR (100)
DECLARE MICURSOR CURSOR FOR SELECT caracter FROM t1
OPEN MICURSOR
FETCH NEXT FROM MICURSOR
WHILE @@fetch_status = 0
BEGIN
SELECT t1.caracter FROM t1 INNER JOIN t2
ON t2.frase LIKE CONCAT('%', t1.caracter,'%')
UPDATE t1 SET caracter= 'caracter' + '(@frase-1)'
FETCH NEXT FROM MICURSOR INTO @frase
END
CLOSE MICURSOR
DEALLOCATE MICURSOR
以上是关于根据与SQL中其他表的重合,来自同一字段的合并行?的主要内容,如果未能解决你的问题,请参考以下文章
Bigquery SQL SELECT WHERE 字段包含来自其他表的许多单词