我需要通過ID連接兩個表格,其中一個ID以數字形式存儲(即12345),另一個ID以管道分隔字符串形式存儲(即12345 | 12346 | 12347)。有兩種方法可以快速加入嗎?謝謝!Hive SQL:如何將數字連接到分隔數字字符串
**我猜如果數字ID(12345)在數字串(12345 | 12346 | 12347)中,我應該說連接。從理論上講,這個例子會加入,因爲12345在管道分隔字符串中。
我需要通過ID連接兩個表格,其中一個ID以數字形式存儲(即12345),另一個ID以管道分隔字符串形式存儲(即12345 | 12346 | 12347)。有兩種方法可以快速加入嗎?謝謝!Hive SQL:如何將數字連接到分隔數字字符串
**我猜如果數字ID(12345)在數字串(12345 | 12346 | 12347)中,我應該說連接。從理論上講,這個例子會加入,因爲12345在管道分隔字符串中。
我不清楚你是指SQL還是HiveQL。
有沒有快速的方法來加入這兩個?
不,不是真的。
您的數據庫架構違反了第一範式。加入這些表格會很慢並且容易出錯。
對於DB無關的嘗試:
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2
ON t2.id LIKE ('%' + CAST(t1.id as varchar) + '%')
這是HiveQL。帶管道分隔字符串的「表」實際上來自外部文件。我只是儘量保持這個問題的簡單性。 – user3865705
這將工作在蜂巢
select obj1.*,obj2.some_fields from table1 obj1
JOIN table2 obj2
on (obj1.id=split(obj2.id,'|')[0])
我不知道快。如果用逗號分隔,'FIND_IN_SET'將很好地工作。也許你可以用逗號替換管道然後找到。 – paqogomez