sql語句如何將多個空格字符替換成一個空格字符


  很多時候,數據表中某個字段的值會帶有一個或多個空格字符串的情況,面對多樣化的需求,我們可能需要將這些空格字符串去除,當然,這很好說,我們可以直接用replace(' ','')將單個空格變成無就可以了,但是我們的需要往往不會這么簡單,我需要保留一個空格字符串,而我的空格字符串是不固定的。那這種情況下我們該怎么辦呢?

  正因為我也遇到了這樣的問題,所以才到網上尋求解決方案,當然,下面的解決方案不是原創,我把我的理解加在其中,第一方便以后查看,第二也給遇到相同問題不知道如何解決的人更好的闡述。

      sql代碼如下:

  SELECT REPLACE(
  REPLACE(
  REPLACE(
  LTRIM(RTRIM(name)),
  '  ',' '+'#'),                    --把兩個空格替換成一個空格加上特殊符號#(' #')

  '#'+' ',''),                      --把特殊符號和一個空格('# ')替換成無''

  '#','') AS NewString         --如果空格總數是偶數,則最后會多一個特殊符號#,此時把#替換成無
  
FROM Moives
  WHERE CHARINDEX(' ',name)> 0 and id=2

    上述代碼中,用到了三個replace,  通常,replace有三個參數,第一個是要操作的目標字符串,第二個是被替換的字符,第三是想要替換成的字符。在這里我們想把Moives表中id為2的記錄的name字段中的空格字符串去掉並且保留一個,首先我們對它去掉首尾空格,然后把每一個操作后得到的結果當作外層操作的第一個參數。如果我們的字段中中間存在一個或多個空字符串,那么最后得到的結果始終會保留一個空格字符.

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM