SQL将脏名称从完整名称替换为标准名称
我想把学生的名字从学生的名字中删去,用标准的名字代替 实际上,我有一个名为“Name\u lookup\u table”的查找表,其中包含字段标准名称和脏名称 在查询的这一部分中,我从循环表的student\u first Name中找到Dirty\u Name。SQL将脏名称从完整名称替换为标准名称,sql,join,replace,left-join,union,Sql,Join,Replace,Left Join,Union,我想把学生的名字从学生的名字中删去,用标准的名字代替 实际上,我有一个名为“Name\u lookup\u table”的查找表,其中包含字段标准名称和脏名称 在查询的这一部分中,我从循环表的student\u first Name中找到Dirty\u Name。 tas.Student\u名字像“%”+nlt.Dirty\u名字 现在我想用学生名中的标准名替换这个脏名 我该怎么做 我正在尝试这个方法,但是标准名称不适合提取它的正确位置 SELECT Student_First_Name
tas.Student\u名字像“%”+nlt.Dirty\u名字
现在我想用学生名中的标准名替换这个脏名
我该怎么做
我正在尝试这个方法,但是标准名称不适合提取它的正确位置
SELECT Student_First_Name
,concat(LEFT(Student_First_Name , LEN(Student_First_Name)-LEN(nlt.Dirty_Name)),nlt.Standard_Name)
, nlt.Dirty_Name
, nlt.Standard_Name
FROM Transformed_All_Student tas
LEFT JOIN Name_Lookup_Table nlt
ON tas.Student_First_Name like '% '+nlt.Dirty_Name
WHERE tas.Student_First_Name like '% '+nlt.Dirty_Name
UNION
SELECT Student_First_Name
,concat(nlt.Standard_Name,LEFT(Student_First_Name , LEN(Student_First_Name)-LEN(nlt.Dirty_Name)))
, nlt.Dirty_Name
, nlt.Standard_Name
FROM Transformed_All_Student tas
LEFT JOIN Name_Lookup_Table nlt
ON tas.Student_First_Name like nlt.Dirty_Name+' % '
WHERE tas.Student_First_Name like nlt.Dirty_Name+' % '
UNION
SELECT Student_First_Name
,concat(LEFT(Student_First_Name , LEN(Student_First_Name)-LEN(nlt.Dirty_Name)),nlt.Standard_Name)
, nlt.Dirty_Name
, nlt.Standard_Name
FROM Transformed_All_Student tas
LEFT JOIN Name_Lookup_Table nlt
ON tas.Student_First_Name like '% '+nlt.Dirty_Name+' % '
WHERE tas.Student_First_Name like '% '+nlt.Dirty_Name+' %'
p、 loopup表中的s脏_名称和标准_名称可以是可变长度
输出:
Full_Name Replaced_Name Dirty_Name Standard_Name
1. Abdul Adul Abdul Adul
2. Mouhammad Saroor MouhammMohammad Mouhammad Mohammad
3. Rashid Rasheed Rashid Rasheed
4. Salim Saleem Salim Saleem
5. Sh. Yaseen Sh. YasSheikh Sh. Sheikh
第2行和第4行的输出不正确。
第二行中,您的名字应该是Mohammad Saroor
在第4行中,您的名字应该是Sheikh Yaseen:S
替换\u名称来自查询:
concat(左(学生名,LEN(学生名)-LEN(nlt.脏名)),nlt.标准名)
我正在连接她,但它没有将标准名称放在正确的位置,因为脏名称和标准名称的长度可变,而且它没有替换脏名称,只是覆盖了它。什么意思是标准名称不合适?你能举一个输出的例子吗?全名替换了全名脏名标准名Adul Abdul Adul Abdul Mohammad Saroor Mohammad Mohammad Mohammad Rashid Rashid Rashid Rashid Rashed Salim Salim Salim Salem Salem记录于2号行不正确,我希望此Mohammad saroor名称与Mohammad saroor相同,即Mohammad应替换为MUHAMMAD@Melanie替换后输出的一个名称是“Mohammad Mohammad”,但原始名称是Mohammad saroor我希望这个Mohammad saroor名称是Mohammad saroor,即Mohammad应该被MUHAMMAD替换。但是当你发布代码时,这个查询会给我输出“Mohammad Mohammad”而不是“Mohammad saroor”,返回并编辑原始问题是最简单的。你在评论中发布的内容并不容易阅读。请给出原始输入、输出内容以及输出内容。谢谢