我有一个大的查询,我使用一个下面的子查询,但这是返回不需要的括号.
SUBSTR(work__note.note_text,1,10000) || ' ' || (select user_name from cm_use where SEQ_USER_ID in work_request_note.create_user_id) || ' ' || work__note.create_date "Notes"
字符串
这给出以下输出:
“工作分配给Kristie Cut(ard 1)2013年11月1日”
预期输出:“工作分配给Kristie Cutt klcd 1 01-NOV-23”
SUBSTR(work_note. note_text,1,10000)||“的一声||(从cm_use中选择user_name,其中SEQ_USER_ID在work__note.create_user_id中)||“的一声||work_note.create_date“Notes”
this is giving below output :
"Work Request was assigned to Kri Cut (kld1) 01-NOV-23"
desired output : "Work was assigned to Kris Cup kld1 01-NOV-23"
型
2条答案
按热度按时间yshpjwxd1#
你可以使用Replace函数来去掉大括号。如果你的结果像问题中一样,你可以在结果字符串上这样做:
字符串
.或者(更好)在包含大括号的列上。在这个例子中,我会说它是来自表CMS_USER的USER_NAME。如果是这样,那么你的子查询,像下面这样修改,应该给予你预期的结果。
型
顺便说一句:您的订阅者(work_request_note.note_text,1,10000)部分没有意义,因为SubStr是字符函数,该类型的列的最大长度为4000,因此如果您想要整个文本,则根本不需要SubStr。您可以将work_request_note.note_另一方面,如果你省略了最后一个参数,那么你将得到结果,直到字符串的结尾,无论它的长度是什么。
tf7tbtn22#
你说结果包含“不需要的”大括号。我假设这些大括号包含在
cms_user.user_name
列中。这是否意味着也有“想要的”牙套?如果是这样,它们是什么?你怎么知道哪些是想要的,哪些不是?
你可以替换它们,或者--也许更简单一点--使用
translate
函数(参见fiddle的演示)。还有,为什么不连接涉及的表,而是使用子查询来获取用户名?因此,
字符串