sql server 用正则表达式进行筛选;

SELECT count(1) FROM [User]
--* # 必须包含数字
SELECT UserID,LoginPassword FROM [User] WHERE PATINDEX('%[0-9]%',LoginPassword) >=1
--* # 必须包含小写或大写字母
SELECT UserID,LoginPassword FROM [User] WHERE PATINDEX('%[a-zA-Z]%',LoginPassword) >=1
--* # 必须包含特殊符号
SELECT UserID,LoginPassword FROM[User] WHERE PATINDEX('%[^a-zA-Z0-9]%', LoginPassword) >=1

--查询 必须含数字,并且含字母,并且含特殊字符的数据,并且长度在8和30之间
SELECT UserID,LoginPassword FROM [User] WHERE PATINDEX('%[0-9]%',LoginPassword) >=1
and PATINDEX('%[a-zA-Z]%',LoginPassword)>=1
and PATINDEX('%[^a-zA-Z0-9]%', LoginPassword) >=1
and len(LoginPassword) >=8 and len(LoginPassword)<=30

--用notin 进行反查
select LoginPassword,* from [User] where UserID not in (SELECT UserID FROM [User] WHERE PATINDEX('%[0-9]%',LoginPassword) >=1
and PATINDEX('%[a-zA-Z]%',LoginPassword)>=1
and PATINDEX('%[^a-zA-Z0-9]%', LoginPassword) >=1
and PATINDEX('%[^a-zA-Z0-9]%', LoginPassword) >=1
and len(LoginPassword) >=8 and len(LoginPassword)<=30);

 

posted @ 2023-03-13 13:42  黄金程序员  阅读(192)  评论(0)    收藏  举报