在使用iwms系統的過程中,我們會經常遇到數據內容的替換操作。在告訴大家如何替換數據內容之前,我建議大家先了解一下SQL Server資料庫的數據存儲類型:
SQL Server數據類型:
數據替換一般都發生在塵春字元串數據欄位中,除了ntext類型欄位以外的其他字元串數據欄位彎巧都可以使用以下的sql語句進行替換:
update [swf_Upload] set [Dir] = replace([Dir],/14',/15')update [swf_Content] set [Description] =replace([Description],/14',/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),/14',/15')
UPDATE [數據表名] SET [欄位名] = REPLACE([欄位名],'老字元串','新字元串')
比如,替換iwms文章數據表(iwms_news)中的標題欄位(title)的部分內容,我們應該這么寫:
UPDATE [iwms_news] SET [title] = REPLACE([title],'老字元串','新字元串')
上面的sql語句在iwms後台的sql執行裡面可以直接執行,基本上可以搞定所有的替換操作,但是由於ntext數據長度的原因,這一方法對ntext類型欄位無效。那我們該用什麼方法替換ntext類型欄位的內容呢?方法有兩種:
一是類型轉換,將ntext類型轉換為varchar類型,然後再用replace。適合於單頁內容最大長度4000的文章。
update [數據表名] set [欄位名] = replace(convert(varchar(4000), [欄位名]),'老字元串','新字元串')
比如,替換iwms文章數據表(iwms_news)中的標題欄位(content,ntext類型欄位)的部分內容,我們應該這么寫:
update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字元串','新字元串')
二是SQL Server存埋兄鍵儲過程
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('老字元串')
declare wux_Cursor scroll Cursor
for
select textptr([欄位名]),[key欄位名] from [數據表名]
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%老字元串%',[欄位名]) from [數據表名] where [key欄位名]=@artId
while @Position0
begin
set @Position=@Position-1
updatetext [數據表名].[欄位名] @ptr @Position @len '新字元串'
select @Position=patindex('%老字元串%',[欄位名]) from [數據表名] where [key欄位名]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
比如,替換iwms文章數據表(iwms_news)中的標題欄位(content,ntext類型欄位)的部分內容,我們應該這么寫
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('老字元串')
declare wux_Cursor scroll Cursor
for
select textptr([content]),[articleid] from iwms_news
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%老字元串%',[content]) from iwms_news where [articleid]=@artId
while @Position0
begin
set @Position=@Position-1
updatetext iwms_news.[content] @ptr @Position @len '新字元串'
select @Position=patindex('%老字元串%',[content]) from iwms_news where [articleid]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
ok了,需要注意的是:存儲過程只能在SQL Server查詢分析器中執行。
另外,由於iwms資料庫結構的問題,有分頁的文章內容需要先後對iwms_news和iwms_pages兩個表內容進行替換操作。
『貳』 sql如何對某個欄位做字元替換
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)
『叄』 oracle sql語句中,有沒有能夠將結果集中數字替換成漢字的函數
oracle sql語句中,有沒有能夠將結果集中數字替換成漢字的函數?
oracle sql語句中,有能夠將結果集中數字替換成漢字的函數,用decode()函數。
1,SQL是Oracle資料庫對SQL語句的擴展。它是一種程序語言,叫做過程化SQL語言。
2,在普通SQL語句的使用上增加了編程語言的特點,所以PL/SQL就是把數據操虛褲仔作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環等操作實現復雜的功能或者計算的程序語言。
3,通過多條SQL語句實現功能時,每條語句都需要在客戶端和服務端傳遞,而且每條語句的執行結果也需要在網路中進行交互,佔用了大量的網路帶寬,消耗了大量網路傳遞的時間。在網路中傳輸的那些結果,往往都是中間結果,而不是我們所關心的。
4,在整個過程中網路里只傳輸了很少的數據,減少了網路傳輸佔用的時間,所以整體程序的執行性能會有明顯的提高。
5,PL/SQL的使用,使SQL成為一種高級程序設計語言,支持高級語言的塊操作,條件判斷,循環語句,嵌套等,與資料庫核心的數據類型集成,使SQL 的程序設計效率更高.
word 中的查找替換將數字換成漢字
先用CTRL+A把WORD全文選中,然後按「CTRL+F」打開「查找和替換」,選「替換」,然後在「查找內容」中輸入你想要替換掉的數字,然後在「替換為」中輸入你想換成的漢字,如果只替換一處,直接點下邊的「替換差汪」就可以了,如果想把文檔中所有符合條件的都替換就點「全部替換」即可。
Mysql中查詢一個表,把結果中的7替換成文字,請寫出sql語句
7是一個欄位嗎?還是一個值?值的話就case when吧 case when a=7 then '文字' else a
在sql查詢中null怎麼替換成漢字
假設欄位名為 column
case when column is null then '空' else column end
還有更方便的
isnull(column,'空')
Mysql中查詢一個表,把結果中的NULL替換成0,怎麼寫出sql語句?
1、MSSQL: ISNULL()
語法純扒
ISNULL ( check_expression , replacement_value )
參數
check_expression
將被檢查是否為 NULL的表達式。check_expression 可以是任何類型的。
replacement_value
在 check_expression 為 NULL時將返回的表達式。replacement_value 必須與 check_expresssion 具有相同的類型。
返回類型
返回與 check_expression 相同的類型。
注釋
如果 check_expression 不為 NULL,那麼返回該表達式的值;否則返回 replacement_value。
2、Oracle: NVL()
語法
NVL(eExpression1, eExpression2)
參數
eExpression1, eExpression2
如果 eExpression1 的計算結果為 null 值,則 NVL() 返回 eExpression2。如果 eExpression1 的計算結果不是 null 值,則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數據類型。如果 eExpression1 與 eExpression2 的結果皆為 null 值,則 NVL( ) 返回 NULL
WPS中如何將所有漢字替換成漢儀中宋簡
首先,你的電腦系統中需要安裝漢儀中宋簡字體。
如果沒有,可網路一下,下載安裝。WIN7系統在下載的.ttf文件上點鍵——安裝即可安裝到系統中。
在WPS中,全選(按Ctrl+A),在「字體」中選擇該字體。
oracle 中的instr替換成sqlserver的什麼函數
Oracle:INSTR(<C1>,<C2>[,I][,J])
SQL Server:CHARINDEX(<C1>,<C2>[,I])
說明:在C2中從I開始搜索C1第1次出現的位置。I:默認1
java中數組的替換當中,如何使用fill()將數字替換成符號
當數據元素為對象時,數據的元素先要初始化,才能使用.因此,代碼
a[]=new [10];
a[0].set(100);
System.out.println(a[0].num);
需要改成;
a[]=new [10];
a[0]=new ();
a[0].set(100);
System.out.println(a[0].num);
sqlite 用sql語句將結果集中的一列數據拼接成一個字元串
這個只用一個查詢語句我是沒有方法可以解決。
我的解決方法需要用到存儲過程,可以直接使用下面代碼,或者將其裝入存儲過程。
Declare @s varchar(200)--長度需要根據需要設定
Set @s = ''
Select @s = @s + Name from 【表】--你的表
Where 【條件】
Select @s
『肆』 sql中如何批量替換欄位里的字元串
估計你是沒理解replace的意思x0dx0ax0dx0a譬如你舉例的這幾個x0dx0aupdate表名set欄位名=replace(欄位名,'aaaa','cccc');x0dx0ax0dx0a這樣以後x0dx0aaaaaxxxbbb變成ccccxxxbbbx0dx0aaaaamtbbb變成ccccmtbbbx0dx0ax0dx0a替換的是里邊的aaax0dx0ax0dx0a你那麼寫不知道你要改什麼,如果你只要改aaa*bbb的那種可以在後邊加where條件x0dx0ax0dx0aupdate表名set欄位名=replace(欄位名,'aaaa','cccc')where欄位名like'aaa*bbb'x0dx0ax0dx0a當然,這個模糊查詢是access里的,如果是sqlserver或oracle等,那個*是要替換成%的x0dx0ax0dx0a----補充----x0dx0a按你說的意思x0dx0aaccess:x0dx0aupdate表名set欄位名='A'where欄位名like'aaa*bbb'x0dx0ax0dx0asqlserver或oracle:x0dx0aupdate表名set欄位名='A'where欄位名like'aaa%bbb'
『伍』 SQL語句replace怎麼替換
Replace("字元串","要被替代的字元串","替代後的字元串")
1、sql
replace
into用法詳細說明REPLACE的運行與INSERT很相似。只有一點例外,假如表中的一個舊記錄與一個用於PRIMARYKEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄被刪除。
2、注意,除非表有一個PRIMARY
KEY或UNIQUE索引,否則,使用一個REPLACE語句沒有意義。該語句會與INSERT相同,因為沒有索引被用於確定是否新行復制了其它的行。
3、所有列的值均取自在REPLACE語句中被指定的值。所有缺失的列被設置為各自的默認值,這和INSERT一樣。您不能從當前行中引用值,也不能在新行中使用值。如果您使用一個例如「SET
col_name
=
col_name
+
1」的賦值,則對位於右側的列名稱的引用會被作DEFAULT(col_name)處理。因此,該賦值相當於SET
col_name
=
DEFAULT(col_name)
+
1。為了能夠使用REPLACE,必須同時擁有表的INSERT和DELETE許可權。
『陸』 sql 如何替換欄位內容
很簡單,如果你這些代碼值不是很多的話可以使用 DECODE或者 CASE....WHEN....更新一下。例如:
如果你的設備種類比較多的可以過濾過來:
1、SELECT * FROM 表名 WHERE REGEXP_LIKE(TYPE_NAME,'設備$');
2、然後看上面的結果完成下面語句,再執行更新
UPDATE 表名
SET PARENT_TYPEID=(CASE PARENT_TYPEID
WHEN 161 THEN '信息設備'
WHEN 3300 THEN '分析輔助設備'
WHEN 1053 THEN '分析設備'
END);
『柒』 如何對sql資料庫中的某一欄位進行替換
1.SQL欄位名稱替換,可以用AS。
如:select
ID,NAME
as
姓名
from
table
2.替換某欄位某些行的值可以用update。
如:update
table
set
Name='zhang
san'
where
name='條件表達式'
3.列值替換還有replace函數。
答案:update
表名
set
列1='yr'
where
列1='hr'
repalce(要置換的欄位,需要替代的字元,替換後的字元)
update
表名
set
列1=replace(列1,'hr','yr');