SQL中字符串中包含字符的判斷方法
在sql中我判斷包含字符串我們可使用很多方法,如like,replace,charindex函數(shù)都可實(shí)現(xiàn)我們要的功能,下面我來給各位介紹判斷字符串包含字符串sql語句。
通過2個函數(shù)CHARINDEX和PATINDEX以及通配符的靈活使用
函數(shù):CHARINDEX和PATINDEX
CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表達(dá)式的起始位置。
PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表達(dá)式中某模式第一次出現(xiàn)的起始位置;如果在全部有效的文本和字符數(shù)據(jù)類型中沒有找到該模式,則返回零。特殊:可以使用通配符!
例子:
1. 查詢字符串中是否包含非數(shù)字字符
SELECT PATINDEX('%[^0-9]%', '1235X461') SELECT PATINDEX('%[^0-9]%', '12350461')
2. 查詢字符串中是否包含數(shù)字字符
SELECT PATINDEX('%[0-9]%', 'SUYLLGoO') SELECT PATINDEX('%[0-9]%', 'SUYLLG0O')
3.函數(shù)判斷字符串只包含數(shù)字
CREATE FUNCTION [dbo].fn_IsNumeric ( @pString VARCHAR(8000) ) RETURNS bit WITH ENCRYPTION AS BEGIN DECLARE @vJudge int SET @vJudge = 0 SELECT @vJudge = CASE WHEN PATINDEX('%[0-9]%', LOWER(@pString)) > 0 THEN 0 WHEN PATINDEX('%[0-9]%', LOWER(@pString)) = 0 THEN 1 END RETURN @vJudge END
4.函數(shù)判斷字符串只包含字母(忽略大小寫)
CREATE FUNCTION [dbo].fn_IsAlpha ( @pString VARCHAR(8000) ) RETURNS bit WITH ENCRYPTION AS BEGIN DECLARE @vJudge int SET @vJudge = 0 SELECT @vJudge = CASE WHEN PATINDEX('%[a-z]%', LOWER(@pString)) > 0 THEN 0 WHEN PATINDEX('%[a-z]%', LOWER(@pString)) = 0 THEN 1 END RETURN @vJudge END
5. 函數(shù)判斷字符串不包含任何符號(包括空格)
CREATE FUNCTION [dbo].fn_IsAlphanumeric ( @pString VARCHAR(8000) ) RETURNS bit WITH ENCRYPTION AS BEGIN DECLARE @vJudge int SET @vJudge = 0 SELECT @vJudge = CASE WHEN PATINDEX('%[^a-z0-9]%', LOWER(@pString)) > 0 THEN 0 WHEN PATINDEX('%[^a-z0-9]%', LOWER(@pString)) = 0 THEN 1 END RETURN @vJudge END
6. 函數(shù)判斷字符串不包含任何符號(除空格外)
CREATE FUNCTION [dbo].fn_IsAlphanumericBlank ( @pString VARCHAR(8000) ) RETURNS bit WITH ENCRYPTION AS BEGIN DECLARE @vJudge int SET @vJudge = 0 SELECT @vJudge = CASE WHEN PATINDEX('%[^a-z0-9 ]%', LOWER(@pString)) > 0 THEN 0 WHEN PATINDEX('%[^a-z0-9 ]%', LOWER(@pString)) = 0 THEN 1 END RETURN @vJudge END -- 注意:[^a-z0-9 ]模式中最后有一個空格。
用charindex()——charindex(字符,字符串)>0 –>包含 查看一段話、一篇文章里面包含什么詞
select ID,title,author from Article where CHARINDEX(title,@item)>0
7.用like——
select * from tablename where field1 like like ‘%key%'
8.使用replace()函數(shù)
declare @item nvarchar(100) set @item='英語好難'; select ID,title,author from Article where LEN(REPLACE(@item,title,''))<len(@item);--根據(jù)替換后的長度進(jìn)行判斷>2、
總結(jié)
以上所述是小編給大家介紹的SQL中字符串中包含字符的判斷方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!
上一篇:SQL Server 2012 sa用戶登錄錯誤18456的解決方法
欄 目:MsSql
下一篇:沒有了
本文標(biāo)題:SQL中字符串中包含字符的判斷方法
本文地址:http://mengdiqiu.com.cn/a1/MsSql/10431.html
您可能感興趣的文章
- 01-10SQLServer存儲過程實(shí)現(xiàn)單條件分頁
- 01-10SQL Server 2012降級至2008R2的方法
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解
- 01-10SQL Server數(shù)據(jù)庫定時自動備份
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)據(jù)的實(shí)例代碼
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代碼
- 01-10SqlServer快速檢索某個字段在哪些存儲過程中(sql 語句)
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或者Hash索引


閱讀排行
本欄相關(guān)
- 01-10SQLServer存儲過程實(shí)現(xiàn)單條件分頁
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方
- 01-10SQL Server 2012降級至2008R2的方法
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10SQL Server數(shù)據(jù)庫定時自動備份
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)
- 01-10SqlServer快速檢索某個字段在哪些存儲
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)