日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符串处理示例--列车车次查询.sql

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串处理示例--列车车次查询.sql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--列車車次信息數據表
CREATE TABLE tb(col varchar(100))
INSERT tb SELECT '1434/1/2/14'
UNION ALL SELECT '"10653(85707)"'
UNION ALL SELECT '"32608/7(83212/1)"'
UNION ALL SELECT '"50057()"'
UNION ALL SELECT '"T888(備)"'
UNION ALL SELECT '"21058(81404/3)0"'
UNION ALL SELECT '"22028(80404.10264)"'
UNION ALL SELECT '20037(80303.84006/9)'
UNION ALL SELECT '24031(80410/9'
UNION ALL SELECT '24048(80904)(23118)'
UNION ALL SELECT '22080(80406.83080.10284)'
UNION ALL SELECT '0031(5632? 5629. 1434/1/2/14)'
CREATE FUNCTION dbo.f_CompSTR(
@str? varchar(8000),? --包含車次的字符串
@find varchar(50)???? --要查詢的值
)RETURNS bit
AS
BEGIN
?IF @str=@find RETURN(1)
?IF LEN(@str)<LEN(@find) RETURN(0)

?--替換掉車次字符串中的無效數據
?SELECT @str=REPLACE(@str,a,b)
?FROM(--采用表集的處理方法,是為了方便以后擴充處理其他無效數據
??SELECT a='"',b='')a

?--統計數據分隔符
?SELECT @str=REPLACE(@str,a,b)
?FROM(
??SELECT a='(',b='\' UNION ALL
??SELECT a=')',b='\' UNION ALL
??SELECT a='(',b='\' UNION ALL
??SELECT a=')',b='\' UNION ALL
??SELECT a=' ',b='\' UNION ALL
??SELECT a=' ',b='\' UNION ALL
??SELECT a='.',b='\' UNION ALL
??SELECT a='.',b='\')a

?--分拆比較處理
?DECLARE @s1 varchar(8000),@h varchar(100),@s varchar(100),@l int
?WHILE @str>''
?BEGIN
??SELECT @s1=LEFT(@str,CHARINDEX('\',@str+'\')-1),
???@str=STUFF(@str,1,CHARINDEX('\',@str+'\'),''),
???@h=LEFT(@s1,CHARINDEX('/',@s1+'/')-1),
???@l=LEN(@h)+1
??IF @h=@find RETURN(1)
??WHILE CHARINDEX('/',@s1+'/')>0
??BEGIN
???SELECT @s=LEFT(@s1,CHARINDEX('/',@s1+'/')-1),
????@s1=STUFF(@s1,1,CHARINDEX('/',@s1+'/'),'')
???IF LEN(@s)<@l
????SET @s=STUFF(@h,@l-LEN(@s),8000,@s)
???IF @find=CASE
?????WHEN LEN(@s)<@l THEN STUFF(@h,@l-LEN(@s),8000,@s)
?????ELSE @S END
????RETURN(1)?
??END
?END
?RETURN(0)
END
GO

--調用上述函數查詢包含車次1434的記錄
SELECT * FROM tb WHERE dbo. f_CompSTR(col,’143’)=1

轉載于:https://www.cnblogs.com/dushu/archive/2012/05/18/2507906.html

總結

以上是生活随笔為你收集整理的字符串处理示例--列车车次查询.sql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。