SQL語句之replace

把表Mng_Auth_SiteMap裏的URL字段裏的包含“BackEnd_Clean”的替換成“'BackEnd”,並且其他保持不變,如下:

UPDATE [BackEnd_DB].[dbo].[Mng_Auth_SiteMap]
SET       [URL] = replace(cast([url] as nvarchar(255)),'BackEnd_Clean','BackEnd')
WHERE [url] like '%BackEnd_Clean%'

說明:這裏是一cast函數主要是防止字段[url]的數據類型不是字符串型,你也可以使用下面的語句,其實也是正確的。
SET       [URL] = replace([url] ,'BackEnd_Clean','BackEnd')

=========================================================================

REPLACE
用第三個表達式替換第一個字符串表達式中出現的所有第二個給定字符串表達式。

語法
REPLACE ( ''string_expression1'' , ''string_expression2'' , ''string_expression3'' )

參數
''string_expression1''

待搜索的字符串表達式。string_expression1 可以是字符數據或二進制數據。

''string_expression2''

待查找的字符串表達式。string_expression2 可以是字符數據或二進制數據。

''string_expression3''

替換用的字符串表達式。string_expression3 可以是字符數據或二進制數據。

返回類型
如果 string_expression(1、2 或 3)是支持的字符數據類型之一,則返回字符數據。如果 string_expression(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。

示例
下例用 xxx 替換 abcdefghi 中的字符串 cde。

SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是結果集:

------------abxxxfghixxx(1 row(s) affected)

=========================================================================

CAST函數
CAST函數用於將某種數據類型的表達式顯式轉換爲另一種數據類型。
語法:
CAST (expression AS data_type)
參數說明:
         expression:任何有效的SQServer表達式。
         AS:用於分隔兩個參數,在AS之前的是要處理的數據,在AS之後是要轉換的數據類型。
         data_type:目標系統所提供的數據類型,包括bigint和sql_variant,不能使用用戶定義的數據類型。
使用CAST函數進行數據類型轉換時,在下列情況下能夠被接受:
(1)兩個表達式的數據類型完全相同。
(2)兩個表達式可隱性轉換。
(3)必須顯式轉換數據類型。
如果試圖進行不可能的轉換(例如,將含有字母的 char 表達式轉換爲 int 類型),SQServer 將顯示一條錯誤信息。
如果轉換時沒有指定數據類型的長度,則SQServer自動提供長度爲30。
例如:
SELECT CAST('ABCDE' AS NVARCHAR(3)) AS 結果
運行結果:
ABC
說明:將字符串ABCDE的數據類型轉換爲NVARCHAR類型,並且長度爲3,所以運行結果爲ABC而沒有顯示DE。


下面使用CAST函數將int類型的ytd_sales列轉換爲char(20)列子:

SQL語句如下:
USE pubs
SELECT ytd_sales FROM titles
SELECT title, ytd_sales FROM titles
WHERE CAST(ytd_sales AS char(20)) LIKE '15%'
AND type = 'trad_cook'


建議:象cast, as 之類的都是sql 語句裏的關鍵字,在查詢分析器裏,選擇後,按SHIFT+F1就可以查詢幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章