『壹』 sql 語句 急!!!! 數據將英文和數字去掉,只保留漢字的sql語句
1、創建測試表,
create table test_replace_str(value varchar2(200));
4、編寫語句,將英文和數字去掉,只保留漢字;
select t.*, regexp_replace(value, '[a-zA-Z0-9]', '') sec
from test_replace_str t;
『貳』 sql查詢剔除欄位中的數字,只保留不含數字的文本
/*用正則表達式或者自定義函數下面是用正則表達式的代碼如果報錯的話,需要開啟Ole Automation Proceres exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Proceres',1;RECONFIGURE;exec sp_configure 'show advanced options', 0;RECONFIGURE;*/--能按正則表達式替換的函數Create Function [dbo].[MyReplace](@Reg Varchar(1000),@Source Varchar(4000),@Str Varchar(1000))returns sql_variant AsBegin Declare @Err Int Declare @obj Int Declare @Rst sql_variant EXEC @Err=Sp_OACreate 'VBScript.RegExp',@obj OUTPUT If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'Pattern',@Reg If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'Global','True' If @Err<>0 GoTo LB EXEC @Err=Sp_OASetProperty @obj,'IgnoreCase','False' If @Err<>0 GoTo LB EXEC @Err=Sp_OAMethod @obj,'Replace',@Rst OUTPUT,@source,@Str If @Err<>0 GoTo LB EXEC @Err=Sp_OADestroy @obj If @Err<>0 GoTo LB Return @RstLB: EXEC Sp_OADestroy @obj RETURN NullEnd --查詢(把所有數字替換為空)select dbo.myreplace('\d',欄位,'') from 表
『叄』 SQL 查詢語句問題(過濾數字)
where (cn not like '%0%') and (cn not like '%1%') .....(cn not like '%9%')
這樣不就可以了
『肆』 用sql查詢時,怎麼判斷欄位中是否含有數字,如果有就把數字去掉
/*
用正則表達式或者自定義函數
下面是用正則表達式的代碼
如果報錯的話,需要開啟OleAutomationProceres
execsp_configure'showadvancedoptions',1;
RECONFIGURE;
execsp_configure'OleAutomationProceres',1;
RECONFIGURE;
execsp_configure'showadvancedoptions',0;
RECONFIGURE;
*/
--能按正則表達式替換的函數
CreateFunction[dbo].[MyReplace](@RegVarchar(1000),@SourceVarchar(4000),@StrVarchar(1000))
returnssql_variant
As
Begin
Declare@ErrInt
Declare@objInt
Declare@Rstsql_variant
EXEC@Err=Sp_OACreate'VBScript.RegExp',@objOUTPUT
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Pattern',@Reg
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Global','True'
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'IgnoreCase','False'
If@Err<>0GoToLB
EXEC@Err=Sp_OAMethod@obj,'Replace',@RstOUTPUT,@source,@Str
If@Err<>0GoToLB
EXEC@Err=Sp_OADestroy@obj
If@Err<>0GoToLB
Return@Rst
LB:
EXECSp_OADestroy@obj
RETURNNull
End
--查詢(把所有數字替換為空)
selectdbo.myreplace('d',欄位,'')from表
『伍』 SQL中select語句如何過濾出欄位中第1位數字元合設定條件的行
假設表名為table1,第一列列名為column1,
則查詢出第一位是「4」的記錄:
select * from table1 where left(cast(column1 as varchar(255)),1)='4'
查詢出第一位不是「4」的記錄:
select * from table1 where left(cast(column1 as varchar(255)),1)<>'4'
『陸』 sql語句中sum如何過濾某一行的數據
select sum(工資) from table where 編號 not in ('009','100');
『柒』 sqlserver的Tsql怎麼將某欄位的文字過濾掉
CREATEFunction[dbo].[RemoveNonNumericCharacters](@TempVarChar(1000))
ReturnsVarChar(1000)
AS
Begin
WhilePatIndex('%[^0-9]%',@Temp)>0
Set@Temp=Stuff(@Temp,PatIndex('%[^0-9]%',@Temp),1,'')
Return@TEmp
End
『捌』 sql語句查詢過濾重復數據
1、查找表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷
復制代碼代碼如下:
select * from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
2、刪除表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷,只留有rowid最小的記錄
復制代碼代碼如下:
delete from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId
)>1)
『玖』 pg資料庫sql如何過濾掉以9開頭的數字
select *
from table
where column not like '9%'
『拾』 各位高手大大們,用SQL怎麼把一個由字元和數字組成的欄位中的數字篩選出來,具體情況看補充哦。
參考
--提取數字
IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL
DROP FUNCTION DBO.GET_NUMBER2
GO
CREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
END
RETURN @S
END
GO
--測試
PRINT DBO.GET_NUMBER('呵呵ABC123ABC')
GO
--123