所以,我正在处理一个查询,它将获得申请人的first_name_txt,last_name_txt或business business_name。
我在尝试连接逗号时遇到问题。
case
when (credit_req_contr_requestor.requestor_type_id=0)
then CONCAT(CONCAT(credit_req_contr_requestor.last_name_txt,'','') ,
credit_req_contr_requestor.first_name_txt )
when(requestor_business.requestor_type_id=3)
then requestor_business.business_name_txt end as applicant_name_txt
我给出两个单引号的原因是因为这个查询是由java sql loader运行的,当它遇到单引号时会中断。
但是,当我运行此查询时,它会出现错误,指出“无效的争论数”。因此,我添加了三个单引号''','''
,但申请人名称_txt将显示为Smith',' John
。
我尝试使用||而不是concat,它也是同样的问题。
我如何得到这个?如何在显示时在这两个字段之间添加逗号?我可以使用的任何其他转义字符?
答案 0 :(得分:1)
怎么样 CONCAT(credit_req_contr_requestor.last_name_txt,CHR(44))
答案 1 :(得分:1)
如果你需要完全避免使用单引号(如果使用包含字符串文字的SQL语句,实用程序会破坏似乎很奇怪)你可以做这样的事情
SQL> ed
Wrote file afiedt.buf
1 with x as (
2 select 0 type_id, 'John' first_name, 'Smith' last_name, null business_name
3 from dual
4 union all
5 select 3, null, null, 'ACME Bolts'
6 from dual
7 )
8 select (case when type_id = 0
9 then last_name || chr(44) || chr(32) || first_name
10 else business_name
11 end)
12* from x
SQL> /
(CASEWHENTY
-----------
Smith, John
ACME Bolts