如何使用SELECT结果记录作为DECODE参数?
当此 SELECT 仅返回带有准备好的字符串的一条记录时,是否可以使用 SELECT 结果作为 DECODE 参数? 例如:
从表中选择替换(替换(serialized_data)..)..)作为结果
在一行中返回以下结果:
0,'标签0',1,'标签1',2,'标签2'
但是当我将其放入 DECODE 时,它被解释为一个参数。 是否有可能将此结果“字符串”转换为“纯” sql代码? ;)
感谢您的帮助。
Is it possible to use SELECT result as DECODE parameters when this SELECT returns only one record with prepared string?
For example:
SELECT replace(replace(serialized_data)..)..) as result FROM table
Returns following result in ONE ROW:
0,'label0',1,'label1',2,'label2'
But when I put this to DECODE it's being interpreted as ONE PARAMETER.
Is there possiblity to convert this result "string" to "pure" sql code? ;)
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
instr
和substr
来复制decode
。下面的一个例子(可能会被大大整理但有效):您确实需要在文本末尾有一个分号(VALSEP),以确保您可以找到最后一个值(尽管可以解决这个问题)如果我进一步研究的话)。
You could kind of replicate
decode
by use ofinstr
andsubstr
. An example below (which could probably be tidied up considerably but works):You do need to have a semi-colon (VALSEP) at the end of the text though to ensure you can find the last value (though it's possible to work around that if I looked into it further).
list_agg 或 wm_concat 取决于 oracle 版本。
http://docs.oracle.com/cd/E14072_01/server .112/e10592/functions087.htm
list_agg or wm_concat depending on version of oracle.
http://docs.oracle.com/cd/E14072_01/server.112/e10592/functions087.htm
您可以使用动态 SQL:
这只是一个简单的示例,未显示任何输出等。
You can use dynamic SQL:
This is just a quick example, not showing any output, etc.