在sql的使用過程當中,我們偶爾會遇到這樣一種情況,就是需要改變數據的存儲形式,比如數據庫某一張表(Info)當中有一個字段Educational(學歷),以前存儲的是Json數組,現在由於需求的改變,我需要將數據的存儲形式改成Json格式,這樣我們就需要對數據進行替換,當數據量太大時,人工操作明顯是不可取的,所以作者就找到了sql當中的REPLACE函數,下面分享一下我的個人體會。
REPLACE
用第三個表達式替換第一個字符串表達式中出現的所有第二個給定字符串表達式。
語法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
參數
''string_replace1''
待搜索的字符串表達式。string_replace1 可以是字符數據或二進制數據。
''string_replace2''
待查找的字符串表達式。string_replace2 可以是字符數據或二進制數據。
''string_replace3''
替換用的字符串表達式。string_replace3 可以是字符數據或二進制數據。
返回類型
如果 string_replace(1、2 或 3)是支持的字符數據類型之一,則返回字符數據。
如果 string_replace(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。
示例
下例用 xxx 替換 abcdefghi 中的字符串 cde.
SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是結果集:
------------abxxxfghixxx(1 row(s) affected)
那麼如何直接對數據進行修改呢?
首頁,我們要實現的是對表中存儲的數據進行修改,那麼一定會有 Update,其次,我們需要把我們的數據進行替換,那麼一定會有 REPLACE.
得出的sql語句如下:
update [Info] set [Educational] =(select REPLACE(REPLACE([Educational],'[',''),']',''))
執行以上的Sql語句,就會把表中存儲的數據全部從Json數組變為Json字符串了。