Oracle - 如何删除空格?

时间:2009-07-28 17:36:06

标签: oracle whitespace

我正在运行此声明:

select trim(a),trim(b) from table x;

即使我使用了trim()语句,我的输出如下所示:

A                                                            B                              
___                                                          ____
kunjramansingh                                               smartdude

列'a'和'b'的数据类型是varchar2(255)。

两个输出的数据之间存在差距。我想显示没有空格的数据 - 格式如下:

A             B
___           ______ 
kunjramansinghsmartdude

我该怎么做?

11 个答案:

答案 0 :(得分:12)

SELECT  REGEXP_REPLACE('A B_ __ kunjramansingh smartdude', '\s*', '')
FROM    dual

---
AB___kunjramansinghsmartdude

<强>更新

只是连接字符串:

SELECT  a || b
FROM    mytable

答案 1 :(得分:12)

看起来你正在sqlplus中执行查询。 Sqlplus需要确保列间距有足够的空间,以便显示最大字符串大小(255)。通常,解决方案是使用列格式化选项(在查询之前运行:A列格式A20)来减少最大字符串大小(超过此长度的行将显示在多行上)。

答案 2 :(得分:5)

如果我理解正确,这就是你想要的

select (trim(a) || trim(b))as combinedStrings from yourTable

答案 3 :(得分:4)

您可以在选择查询中使用'rpad'并指定尺寸...

select rpad(a , 20) , rpad(b, 20) from x ;

其中第一个参数是您的列名,第二个参数是您要填充的大小。

答案 4 :(得分:3)

这听起来像输出格式问题?如果使用SQL Plus,请使用这样的COLUMN命令(假设您希望每个显示宽度最多为20个字符):

column a format a20
column b format a20
select a, b from mytable;

答案 5 :(得分:1)

SQL Plus将格式化列以保存最大可能值,在本例中为255个字符。

要确认您的输出实际上不包含这些额外的空格,请尝试以下操作:

SELECT
  '/' || TRIM(A) || '/' AS COLUMN_A
 ,'/' || TRIM(B) || '/' AS COLUMN_B
FROM
  MY_TABLE;

如果'/'字符与输出分开,则表示它不是空格,而是其他一些空格字符(例如制表符)。如果是这种情况,那么它可能是您应用程序中某处的输入验证问题。

然而,最可能的情况是'/'字符实际上会触及其余的字符串,从而证明实际上是修剪了空白。

如果你想将它们一起输出,那么Quassnoi给出的答案就应该这样做。

如果它纯粹是一个显示问题,那么Tony Andrews给出的答案应该可以正常工作。

答案 6 :(得分:1)

REPLACE(REPLACE(a.CUST_ADDRESS1,CHR(10),' '),CHR(13),' ') as ADDRESS

答案 7 :(得分:1)

说,我们有一个列,其值仅包含字母数字字符和下划线。我们需要在所有空格,制表符或任何白色字符上修剪此列。 以下示例将解决该问题。修剪过的和原来的两个都被显示用于比较。 select '/'||REGEXP_REPLACE(my_column,'[^A-Z,^0-9,^_]','')||'/' my_column,'/'||my_column||'/' from my_table;

答案 8 :(得分:0)

使用以下内容确保输出中没有空格:

select first_name || ',' || last_name from table x;

<强>输出

约翰史密斯

简,Doe的

答案 9 :(得分:0)

我已使用以下命令删除Oracle中的空白

我的是- NG_CAP_SENDER_INFO_MTR

我的列名是- SENINFO_FROM

DispatchQueue.main.sync {
  // Reload code goes here...
  tableView.reloadData()
}

DispatchQueue.main.sync {
  // Row, section and other checks / initialization go here...
  tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}

Already Answer on StackOverflow LTRIM RTRIM

工作正常

答案 10 :(得分:-1)

运行以下查询替换TABLE_NAME&amp; COLUMN_NAME与您的实际桌子和&amp;列名:

UPDATE TABLE_NAME SET COLUMN_NAME=TRIM(' ' from COLUMN_NAME);