简体   繁体   English

SQL Server 2014 上的 TRIM 函数

[英]TRIM function on SQL Server 2014

IN SQLite I wrote :在 SQLite 我写道:

UPDATE MYTABLE SET MYFIELD = TRIM(MYFIELD);

What to do to have this on SQL Server 2014 ?如何在 SQL Server 2014 上使用它?

UPDATE MYTABLE SET MYFIELD = LTRIM(RTRIM(MYFIELD));

However, field type must be varchar() and not text.但是,字段类型必须是 varchar() 而不是文本。 Otherwise you get "Argument data type text is invalid for argument 1 of rtrim function"否则你会得到“参数数据类型文本对于 rtrim 函数的参数 1 无效”

您需要函数LTRIM (从左侧修剪)和RTRIM (从右侧修剪):

UPDATE MYTABLE SET MYFIELD = LTRIM(RTRIM(MYFIELD));

你应该使用 LTRIM 然后 RTRIM 函数像这样 UPDATE MYTABLE SET MYFIELD = LTRIM(RTRIM(MYFIELD AS VARCHAR(SIZE))

If we also want to handle white spaces/unwanted tabs:如果我们还想处理空格/不需要的选项卡:

Check and Try the below script ( Unit Tested )-检查并尝试以下脚本(单元测试)-

--Declaring
DECLARE @Tbl TABLE(col_1 VARCHAR(100));

--Test Samples
INSERT INTO @Tbl (col_1)
VALUES
('  EY     y            
Salem')
, ('  EY     P    ort       Chennai   ')
, ('  EY     Old           Park   ')
, ('  EY   ')
, ('  EY   ')
,(''),(null),('d                           
    f');

SELECT col_1 AS INPUT,
    LTRIM(RTRIM(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(col_1,CHAR(10),' ')
        ,CHAR(11),' ')
        ,CHAR(12),' ')
        ,CHAR(13),' ')
        ,CHAR(14),' ')
        ,CHAR(160),' ')
        ,CHAR(13)+CHAR(10),' ')
    ,CHAR(9),' ')
    ,' ',CHAR(17)+CHAR(18))
    ,CHAR(18)+CHAR(17),'')
    ,CHAR(17)+CHAR(18),' ')
    )) AS [OUTPUT]
FROM @Tbl;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM