2020-09-30 07:04发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
SAP专家,
我有一个带有2种不同数据类型的join语句。 第一个是具有alpha转换的char 10,第二个也是具有alpha转换的char 4。 join语句如下:
tab1-char10 = tab2-char4上的内部联接
数据类型如下:
字符10:0000000001
字符4:0001
您对如何在join语句中转换这些数据有任何建议吗? 预期结果是在上面的示例中满足了加入条件。
提前谢谢!
我猜您在谈论Open SQL。
ON条件的列之间的比较是在数据库中进行的,并且比较规则是特定于数据库的。 在这种特殊情况下,较长字段的右侧会被截断,或者较短字段的空白将被填充(这应该是规范行为)。 两者都将为您的上述示例提供不相等的值。
如果您的发行版已允许,则解决方案是使用 LPAD 可以用左侧的000填充较短的字段(到目前为止,RHS上不允许使用任何表达式)。 否则,您可能会使用Native SQL。
您好,Horst-感谢您帮助我。 在发布原始答案后,我想到了ABAP Development的主要标签,并意识到我的答案更多地是沿着SQL或Oracle语法进行的,在这些方面,我过去对诸如此类的数据项有一些经验,但并非所有字段都相同 固定长度,并且填充不一致。
该字段始终为零填充,如" char 10"中所示,然后只需将" 00000000"连接到您的字段中,并用SQL语言进行右修剪 选择适当的字符数。 对该字段进行别名并在您的联接表达式中使用它。
这不是问题的答案...
将data1左移删除前导" 0" 。 字符10 * 左移data2删除前导" 0"。 " char 4 * ...其中data1 = data2。
最多设置5个标签!
我猜您在谈论Open SQL。
ON条件的列之间的比较是在数据库中进行的,并且比较规则是特定于数据库的。 在这种特殊情况下,较长字段的右侧会被截断,或者较短字段的空白将被填充(这应该是规范行为)。 两者都将为您的上述示例提供不相等的值。
如果您的发行版已允许,则解决方案是使用 LPAD 可以用左侧的000填充较短的字段(到目前为止,RHS上不允许使用任何表达式)。 否则,您可能会使用Native SQL。
您好,Horst-感谢您帮助我。 在发布原始答案后,我想到了ABAP Development的主要标签,并意识到我的答案更多地是沿着SQL或Oracle语法进行的,在这些方面,我过去对诸如此类的数据项有一些经验,但并非所有字段都相同 固定长度,并且填充不一致。
该字段始终为零填充,如" char 10"中所示,然后只需将" 00000000"连接到您的字段中,并用SQL语言进行右修剪 选择适当的字符数。 对该字段进行别名并在您的联接表达式中使用它。
这不是问题的答案...
一周热门 更多>