我正在运行此声明:
select trim(a),trim(b) from table x;
即使我使用了trim()语句,我的输出如下所示:
A B
___ ____
kunjramansingh smartdude
列'a'和'b'的数据类型是varchar2(255)。
两个输出的数据之间存在差距。我想显示没有空格的数据 - 格式如下:
A B
___ ______
kunjramansinghsmartdude
我该怎么做?
答案 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);