oracle 如何选择带引号的字段?

7tofc5zh  于 2023-10-16  发布在  Oracle
关注(0)|答案(4)|浏览(120)

我试图选择几个字段并将它们括在引号内,因为我必须将这些记录导出到平面文件中,然后将它们插入到另一个数据库中。所以我在Oracle上运行这些查询,并且在尝试添加这些引用时遇到了麻烦。这是我尝试运行的查询:

SELECT
  'connection_string' || '|' || 
  ''' || employee_name || '''
FROM
  table1

我想要的输出是:

'connection_string'|'Bob'
'connection_string'|'Jane'

我也试过

SELECT
  'connection_string' || '|' || 
  '' || employee_name || ''
FROM
  table1

这显然是行不通的connection_string是静态的,保持不变,结果应该由管道分隔

xriantvc

xriantvc1#

你只是在输出中寻找单引号吗?如果是:

SELECT '''' || 'connection_string' || '''|''' || 
       employee_name || ''''
FROM table1;

一行中的两个单引号--在一个字符串中--表示一个单引号。或者,换句话说,对于一个带单引号的字符串,你需要一行四个:

''''
^ starts the string
-^^ the single quote
---^ ends the string
odopli94

odopli942#

你是说像这样吗在SCOTT模式中使用EMP表。

select ename, '''connection_string''|''' || ename || ''''
from   scott.emp;

ENAME      '''CONNECTION_STRING''|'''||ENAM
---------- --------------------------------
SMITH      'connection_string'|'SMITH'
ALLEN      'connection_string'|'ALLEN'
WARD       'connection_string'|'WARD'
JONES      'connection_string'|'JONES'
MARTIN     'connection_string'|'MARTIN'
BLAKE      'connection_string'|'BLAKE'
CLARK      'connection_string'|'CLARK'
SCOTT      'connection_string'|'SCOTT'
KING       'connection_string'|'KING'
TURNER     'connection_string'|'TURNER'
ADAMS      'connection_string'|'ADAMS'
JAMES      'connection_string'|'JAMES'
FORD       'connection_string'|'FORD'
MILLER     'connection_string'|'MILLER'
mfuanj7w

mfuanj7w3#

另一种方法是使用Q syntax

SQL> with tableA(a) as (
  2    select 'aaa' from dual union all
  3    select 'AAA' from dual
  4  )
  5  select q'[Your string ']' || a || q'[']' as A
  6  from tableA;

A
-----------------
Your string 'aaa'
Your string 'AAA'

在这种情况下,它可能有点多余,但在更复杂的情况下可能很有用。

bnl4lu3b

bnl4lu3b4#

select listagg( '''' || TESTNAME || '''',',') from test;

这将导致单引号中的数据,所有测试名称由逗号分隔并包含在单引号中

相关问题