SqlServer 小记 PATINDEX

1.
declare @str nvarchar(max)
declare @str1 nvarchar(50)
declare @str2 nvarchar(50)
select @str='XX'
Declare @n int 
set @n=18869
while @n<=20000
begin
  
 select @str1='<'+convert(nvarchar(10),@n)+'>'
 select @str2='<'+convert(nvarchar(10),@n)+'title'
 
 select @str=replace(@str,@str1,'')
 select @str=replace(@str,@str2,'')
 select @str=replace(@str,'<title','')
 select @str=replace(@str,'=','$')


 set @n=@n+1
End
print @str


select @str






2.
declare @str nvarchar(max)
select @STR='XX'


select REPLACE(@str,'>','$')






3.
DECLARE @SourceSql VARCHAR(MAX)
DECLARE @StrSeprate VARCHAR(10)
    DECLARE @i INT
    DECLARE @Name NVARCHAR(50)
    DECLARE @j INT
    
    SET @StrSeprate='$'
    SET @SourceSql='XXX'
    SET @SourceSql = RTRIM(LTRIM(@SourceSql))
    SET @i = CHARINDEX(@StrSeprate,@SourceSql)
    WHILE @i>=1 BEGIN
SET @Name = LEFT(@SourceSql,@i-1)
        SET @SourceSql = SUBSTRING(@SourceSql, @i + 1, LEN(@SourceSql) - @i)
        SET @i = CHARINDEX(@StrSeprate,@SourceSql)
        
        SET @j= PATINDEX('%[0-9]%',@Name)
        if @j=0
        BEGIN
IF NOT EXISTS(SELECT * FROM c_all WHERE dname=@Name)
BEGIN
INSERT INTO c_all(dname) VALUES(@Name)
END
        END
        ELSE
        BEGIN
        IF NOT EXISTS(SELECT * FROM c_all WHERE uname=@Name)
BEGIN
INSERT INTO c_all(uname) VALUES(@Name)
END
        END
        
    END












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值