Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用前导空格和尾随空格填充SQL中列的所有值_Sql_Database_Oracle_Db2_Sybase - Fatal编程技术网

用前导空格和尾随空格填充SQL中列的所有值

用前导空格和尾随空格填充SQL中列的所有值,sql,database,oracle,db2,sybase,Sql,Database,Oracle,Db2,Sybase,对于表中的列,我希望一次性向列的所有值添加前导空格和尾随空格。例如,表Employee(名称varchar(5))。由于表的每行有5个字符,在执行查询时,应将其更新为每行有7个字符。实际上,前导和尾随空格应填充到列中的值 我需要一个SQL查询 select ' '||Name||' ' from Employee 如果要更新表 update EMPLOYEE set Name = ' ' || Name || ' ' 如果要更新表 update EMPLOYEE set Name = ' '

对于表中的列,我希望一次性向列的所有值添加前导空格和尾随空格。例如,
表Employee(名称varchar(5))
。由于表的每行有
5个
字符,在执行查询时,应将其更新为每行有
7个
字符。实际上,前导和尾随空格应填充到列中的值

我需要一个SQL查询

select ' '||Name||' ' from Employee
如果要更新表

update EMPLOYEE set Name = ' ' || Name || ' '
如果要更新表

update EMPLOYEE set Name = ' ' || Name || ' '
如果要更新表

update EMPLOYEE set Name = ' ' || Name || ' '
如果要更新表

update EMPLOYEE set Name = ' ' || Name || ' '

在Oracle中,这将在“名称”列中的每个值前面放置一个空格,并用空格右键填充,总长度为7个字符:

update employee
set name = rpad(' '||name,7);
您需要先更改表格以容纳额外的空间

alter table employee
modify
name varchar2(7);

在Oracle中,这将在“名称”列中的每个值前面放置一个空格,并用空格右键填充,总长度为7个字符:

update employee
set name = rpad(' '||name,7);
您需要先更改表格以容纳额外的空间

alter table employee
modify
name varchar2(7);

在Oracle中,这将在“名称”列中的每个值前面放置一个空格,并用空格右键填充,总长度为7个字符:

update employee
set name = rpad(' '||name,7);
您需要先更改表格以容纳额外的空间

alter table employee
modify
name varchar2(7);

在Oracle中,这将在“名称”列中的每个值前面放置一个空格,并用空格右键填充,总长度为7个字符:

update employee
set name = rpad(' '||name,7);
您需要先更改表格以容纳额外的空间

alter table employee
modify
name varchar2(7);

由于需要填充的列是可变长度的,我不认为在前后硬编码空格是正确的解决方案。如果列中的数据长度为3,则在数据前后填充1个空格仍将导致长度为5。由于OP没有指定所有数据的长度是否为5,因此需要采用不同的方法。根据您希望添加空间的方式,您可以尝试以下操作(这将在数据之前添加1个空间,并将剩余空间填充到末尾):


这将导致名称前面有1个空格,后面有3个空格。

因为需要填充的列的长度是可变的,我不认为在名称之前或之后硬编码空格是正确的解决方案。如果列中的数据长度为3,则在数据前后填充1个空格仍将导致长度为5。由于OP没有指定所有数据的长度是否为5,因此需要采用不同的方法。根据您希望添加空间的方式,您可以尝试以下操作(这将在数据之前添加1个空间,并将剩余空间填充到末尾):


这将导致名称前面有1个空格,后面有3个空格。

因为需要填充的列的长度是可变的,我不认为在名称之前或之后硬编码空格是正确的解决方案。如果列中的数据长度为3,则在数据前后填充1个空格仍将导致长度为5。由于OP没有指定所有数据的长度是否为5,因此需要采用不同的方法。根据您希望添加空间的方式,您可以尝试以下操作(这将在数据之前添加1个空间,并将剩余空间填充到末尾):


这将导致名称前面有1个空格,后面有3个空格。

因为需要填充的列的长度是可变的,我不认为在名称之前或之后硬编码空格是正确的解决方案。如果列中的数据长度为3,则在数据前后填充1个空格仍将导致长度为5。由于OP没有指定所有数据的长度是否为5,因此需要采用不同的方法。根据您希望添加空间的方式,您可以尝试以下操作(这将在数据之前添加1个空间,并将剩余空间填充到末尾):


这将导致名称前面有1个空格,后面有3个空格。

数据来自哪里?如果将列的宽度设置为固定,则源数据中的任何前导空格都应保留。(免责声明:我使用的是SQL Server 2012,而不是Oracle。) 我遇到了一个问题,即我将数据从SQLServer发送到AS400 DB2数据库,并且从数据运行的程序期望在某些列中排列。修剪前导空格会使整行对齐错误。当我的SQL server数据类型为NVARCHAR(20)时,“VAR”部分修剪了前导空格。使其成为NCHAR(20)修复了该问题。
不过,DB2数据库删除了空格,因此我在这方面遇到了问题

数据来自哪里?如果将列的宽度设置为固定,则源数据中的任何前导空格都应保留。(免责声明:我使用的是SQL Server 2012,而不是Oracle。) 我遇到了一个问题,即我将数据从SQLServer发送到AS400 DB2数据库,并且从数据运行的程序期望在某些列中排列。修剪前导空格会使整行对齐错误。当我的SQL server数据类型为NVARCHAR(20)时,“VAR”部分修剪了前导空格。使其成为NCHAR(20)修复了该问题。
不过,DB2数据库删除了空格,因此我在这方面遇到了问题

数据来自哪里?如果将列的宽度设置为固定,则源数据中的任何前导空格都应保留。(免责声明:我使用的是SQL Server 2012,而不是Oracle。) 我遇到了一个问题,即我将数据从SQLServer发送到AS400 DB2数据库,并且从数据运行的程序期望在某些列中排列。修剪前导空格会使整行对齐错误。当我的SQL server数据类型为NVARCHAR(20)时,“VAR”部分修剪了前导空格。使其成为NCHAR(20)修复了该问题。
不过,DB2数据库删除了空格,因此我在这方面遇到了问题

数据来自哪里?如果将列的宽度设置为固定,则源数据中的任何前导空格都应保留。(免责声明:我使用的是SQL Server 2012,而不是Oracle。)