【发布时间】:2018-12-01 21:53:58
【问题描述】:
我需要将一列值与下表“BRAND”中的另一列值进行比较。我尝试单独考虑两列之间的字符串长度,但尽管如此.. 列中的值不同,因此它给出的结果不正确。
表品牌:
ID brand_1 brand_2 Status
---------------------------------------------------
1 SAC SAC True
2 APP BBB BBB APP True
3 ABC OND DEG DEG ABC OND True
4 GIF APP GIF False
5 GHY PPA GHY PPA ABC False
6 MNC CGA IPK GIT ABC ITY False
我需要返回 False 的行,因为brand_1 和brand_2 列之间没有匹配。数据中不存在 Status 列;我在这里添加它是为了演示哪些行被认为是“错误的”并且应该返回。该列也不应该存在于输出中。
输出:
ID brand_1 brand_2
-------------------------------------------
4 GIF APP GIF
5 GHY PPA GHY PPA ABC
6 MNC CGA IPK GIT ABC ITY
请帮帮我。
【问题讨论】:
-
什么是:(1) Oracle 版本(如 11.2.0.4 或 12.2.0.1 - 用
select * from v$version查找;(2) 您的预期知识水平?您可以使用 user-定义的类型、嵌套表、lateral子句等?然后:ID = 4,在brand_2 下,中间有两个空格;这是错误的吗?或者两个空格算作它们之间的null?在换句话说:AAA BBB和BBB AAA是否被认为是相同的,即使它们中间有不同数量的空格? -
嗨,Mathguy,对于 ID =4 ,应该只有一个空格而不是两个空格。错误地,它出现了两个空格。是的,AAA BBB 和 BBB AAA 被认为是相同的。
-
Oracle 版本:12.1.0.2.0
-
嗨 Mathguy,我正在执行相同的操作并且能够看到结果。非常感谢。我正在对数据进行更多测试。以防万一,如果我只想显示下面没有“状态”的输出并返回任何错误的内容。请告诉我该怎么做。 ID 品牌_1 品牌_2 ----------------------------------------------- ---- 4 GIF APP GIF 5 GHY PPA GHY PPA ABC 6 MNC CGA IPK GIT ABC ITY
-
抱歉,我无法为表格提供正确的格式