如何选择引号括起来的字段?

时间:2016-11-16 17:36:38

标签: sql oracle quote

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

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

我想要的输出是:

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

我也试过

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

这显然不起作用。 connection_string是静态的并且保持不变,结果应该由管道

分隔

3 个答案:

答案 0 :(得分:2)

您只是在输出中寻找单引号吗?如果是这样的话:

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

一行中的两个单引号 - 以字符串形式 - 表示单个引号。或者,换句话说,对于包含单个引号的字符串,您需要连续四行:

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

答案 1 :(得分:0)

你是说这个意思吗?使用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'

答案 2 :(得分:0)

Anoter方式可能正在使用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'

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