【问题标题】:TRIM function on SQL Server 2014SQL Server 2014 上的 TRIM 函数
【发布时间】:2015-02-22 11:10:59
【问题描述】:

在我写的 SQLite 中:

UPDATE MYTABLE SET MYFIELD = TRIM(MYFIELD);

如何在 SQL Server 2014 上使用此功能?

【问题讨论】:

  • 你为什么不花 10 秒时间谷歌一下?
  • @juergend 我讨厌评论一个 5 年前的评论,但找不到像我觉得有必要的原始海报这样的答案。有时即使答案似乎很容易获得,寻找它并找到它就是你所寻找的。例如,我在 google 上搜索 sql server 2014 trim function 并首先得到了这个问题。在 Google 上查看其他结果时,我的脑海中出现了一些问题,即当 TRIM 在 SQL 2014 中不存在时,LTRIM 和 RTRIM 存在这一事实。每次我注意到一个谈论 (L|R)TRIM 的页面时,我很快就忽略了。跨度>

标签: sql sql-server sqlite


【解决方案1】:
UPDATE MYTABLE SET MYFIELD = LTRIM(RTRIM(MYFIELD));

但是,字段类型必须是 varchar() 而不是文本。 否则你会得到“Argument data type text is invalid for argument 1 of rtrim function”

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我从哪里得到这个函数,即如何编写它?
    • 你不必编写函数,LTRIMRTRIM 是内置函数。使用 dotnetom 的 查询。它会起作用的。 @user3927897
    • 我得到:参数数据类型文本对于 rtrim 函数的参数 1 无效。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      如果我们还想处理空格/不需要的制表符:

      检查并尝试以下脚本(单元测试)-

      --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;
      

      【讨论】:

        猜你喜欢
        • 2014-12-02
        • 1970-01-01
        • 2013-01-05
        • 2016-08-23
        • 2015-05-20
        • 2011-12-11
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        相关资源
        最近更新 更多