社区,
我完成了在Teradata中测试数据的任务。来自另一个领域,我想请你帮忙。
所以我有三张桌子:
Zus0
:ID1
,ID2
Zus1
:ID1
Zus2
:ID2
现在,我需要根据Zus1
中的Zus2
信息加入ID
和Zus0
。
我遇到的问题是ID1
中显示的Zus0
有另一个列名和格式,而不是Zus1
。
像这样:
ID1
在Zus1
中:“6123421”; - 名为IDZ的小组ID1
在Zus0
中:“000006123421”; - 名为IDY的列现在我想基于Zus0
中的关系加入这两个表你知道我怎么做吗?
答案 0 :(得分:0)
假设这些ID都是数字的,问题只是那些存储为varchar的那些的前导零:
>>> def f(s):
... print
... print "recieved", s
... if len(s) <= 1:
... print "returning", s
... return s
... print "returning f(f(%s)) + %s" % (s[1:], s[0])
... return f(f(s[1:])) + s[0]
...
>>> print f("abcd")
recieved abcd
returning f(f(bcd)) + a
recieved bcd
returning f(f(cd)) + b
recieved cd
returning f(f(d)) + c
recieved d
returning d
recieved d
returning d
recieved dc
returning f(f(c)) + d
recieved c
returning c
recieved c
returning c
recieved cdb
returning f(f(db)) + c
recieved db
returning f(f(b)) + d
recieved b
returning b
recieved b
returning b
recieved bd
returning f(f(d)) + b
recieved d
returning d
recieved d
returning d
dbca
您可能实际上不需要投射两组字段,其中一组已经是数字。由于您正在进行连接,因此如果两个字段都已经是数字并且不需要转换,那么连接速度也会比较慢。