0

我在 Teradata SQL 表中,如下所示:

col1             | col2
----------------------------
Adam Nowak PHU   | Nowak Adam
AAR Kowal Jan    | Kowal Jan
Tomasz Gut       | Juk Anna

我只想选择以下行:

  • 在 col1 我有 col2 + something 的值(没关系在值之前或之后)
  • 请注意,姓名和姓氏的顺序并不重要,因此 Jan Kowal 与 Kowal Jan 相同

因此,我需要像下面这样的东西,所以只有第一行和第二行,因为 col2 中有 col1 值 + 其他东西,名字和姓氏的顺序并不重要:

在此处输入图像描述

我使用了如下查询,但我的查询没有考虑到姓名顺序并不重要,并且对于我的代码 Jan Kowal 和 Kowal Jan 是不同的人。

where upper(col1) like '%' || upper(col2) || '%'

此外,我使用的代码非常适合我的情况并且可以正常工作,但仅在 MS SQL Server 上,在 Teradata SQL id 上不起作用:

WHERE
  upper(col1) LIKE '%' + substring(upper(col2), 1, CHARINDEX(' ',col2)-1) + '%'
AND
  upper(col1) LIKE '%' + substring(upper(col2), CHARINDEX(' ',col2)+1, LEN(col2)) + '%'

我怎样才能在 Teradata SQL 中做到这一点?您能否修改我在 MS SQL Server 上工作的代码或建议您自己在 Teradata SQL 上工作的解决方案?

4

0 回答 0