我表中的某些列值都用双引号引起来,我需要删除这些双引号。问题是,我无法在SQL Developer(版本4.2.0.16.260)中查看双引号符号。但是,当我将数据复制到Notepad ++时,会出现双引号。我尝试使用"Testdata
"
Testdata
来获取双引号的位置,其返回结果0。另外,我尝试将双引号替换为空白,但并未将其删除。
下面是复制到Notepad ++时看到的数据。显示2条记录。我正在尝试从这两个值中获取不同的值。但是我不能。
[ "$(uname)" = "AIX" ] && ECHO="echo" || ECHO="echo -e"
echo "AA BB CC DD" | while read a b c d; do
[ "`$ECHO $a | cut -c1-2`" = "AA" ] && echo $b
done
答案 0 :(得分:1)
请试试这个
SELECT REPLACE(TRIM(column_name), CHR(13)||CHR(10))
FROM table_name;
答案 1 :(得分:0)
数据库表中的列值没有双引号。
从结果网格复制数据时,SQL Developer会将它们添加为复制操作的一部分,以帮助您。 (也许有一种方法可以要求它不要,但我无法立即看到它。)之所以这样做,是因为您得到的第一个值具有尾随换行符。如果可以,我可以复制您看到的内容:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;
如果我以脚本身份运行,则脚本输出窗口将显示:
'TESTDATA
---------
Testdata
Testdata
这里换行符丢失了,从那里复制和粘贴不会保留它。如果我以语句形式运行,则查询结果窗口中的数据看起来相同:
但是,如果我从网格中复制该数据并将其粘贴(在任何地方,不仅在Notepad ++中),我还会看到:
"Testdata
"
Testdata
...因此保留了换行符,并用双引号将其括起来,因此粘贴到其中的任何内容(我猜这是针对Excel的)都理解它是单个值,包括该换行符。 / p>
我正在尝试从这两个值中获取不同的值
问题在于它们实际上并没有区别;一个有换行符,另一个没有。
如果您想忽略它们并将它们视为相同,可以剪掉尾随的换行符:
select distinct rtrim(col, chr(10))
from your_table;
具有相同样本数据的演示
-- CTE for sample data
with your_table (col) as (
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual
)
select col
from your_table;
COL
---------
Testdata
Testdata
-- CTE for sample data
with your_table (col) as (
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual
)
select distinct rtrim(col, chr(10)) as col
from your_table;
COL
---------
Testdata