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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

一个比较笨的全文搜索的例子(分析结构用)-模糊查找

發布時間:2023/12/13 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个比较笨的全文搜索的例子(分析结构用)-模糊查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 2 3 4 --在所有的char類型的列中模糊查找某個值。 5 --**注意預先切換到當前的數據庫中。 6 DECLARE @TABLE_CATALOG NVARCHAR(MAX)--數據庫名 7 ,@TABLE_SCHEMA NVARCHAR(MAX)--架構名 8 ,@TABLE_NAME NVARCHAR(MAX)--表名 9 ,@COLUMN_NAME NVARCHAR(MAX)--列名 10 ,@SQL NVARCHAR(MAX)--動態sql語句 11 ,@find_char nvarchar(max)--查找的內容變量 12 --********************************************************************************* 13 set @find_char='1月22日支辦公費、車修、過路費、宿費等款'--輸入查找的內容 14 --********************************************************************************* 15 declare @t table (TABLE_CATALOG NVARCHAR(MAX) 16 ,TABLE_SCHEMA NVARCHAR(MAX) 17 ,TABLE_NAME NVARCHAR(MAX) 18 ,COLUMN_NAME NVARCHAR(MAX))--定義表變量 19 DECLARE C1 CURSOR FOR--定義游標,從INFORMATION_SCHEMA.COLUMNS和INFORMATION_SCHEMA.TABLES兩個系統視圖中獲取表和字段的信息,用于下面構建動態sql語句 20 SELECT A.TABLE_CATALOG 21 ,A.TABLE_SCHEMA 22 ,A.TABLE_NAME 23 ,A.COLUMN_NAME 24 FROM INFORMATION_SCHEMA.COLUMNS A--注意在這里修改數據庫名稱 25 JOIN INFORMATION_SCHEMA.TABLES B--注意在這里修改數據庫名稱 26 ON A.TABLE_CATALOG=B.TABLE_CATALOG 27 AND A.TABLE_SCHEMA=B.TABLE_SCHEMA 28 AND A.TABLE_NAME=B.TABLE_NAME 29 WHERE B.TABLE_TYPE='BASE TABLE'--僅僅查詢表,不包括視圖,可根據實際情況修改 30 AND 31 A.TABLE_NAME IN 32 (select a.name--,b.rowcnt--,object_name(b.id),a.id 33 from sysobjects a join sysindexes b 34 on a.id=b.id 35 where a.xtype='u' and b.indid<2 36 --and a.name like '%zy%'--限定表的名稱 37 --and rowcnt <=10000--限定記錄條數 38 ) 39 AND 40 (DATA_TYPE LIKE N'%CHAR' or DATA_TYPE like N'%text')--僅僅查找CHAR類型的列CHAR,VARCHAR,NCHAR,NVARCHAR四種情況,可根據實際情況修改 41 42 OPEN C1 43 FETCH NEXT FROM C1 INTO @TABLE_CATALOG 44 ,@TABLE_SCHEMA 45 ,@TABLE_NAME 46 ,@COLUMN_NAME 47 WHILE @@FETCH_STATUS=0 48 BEGIN 49 SET @SQL= 50 'IF EXISTS (SELECT ['+@COLUMN_NAME+'] FROM ['+@TABLE_CATALOG+'].['+@TABLE_SCHEMA+'].[' 51 +@TABLE_NAME+'] WHERE ['+@COLUMN_NAME+'] like ''%'+@find_char+'%'')'--模糊查找 52 +'print ''select * from ['' + @TABLE_CATALOG+''].['' + @TABLE_SCHEMA+''].['' + @TABLE_NAME + ''] where ['' + @COLUMN_NAME + ''] like %''+@find_char+''%'''--構建動態sql語句,生成可以直接查詢的語句。 53 EXEC SP_EXECUTESQL @SQL--執行動態sql語句 54 ,N'@TABLE_CATALOG NVARCHAR(MAX) OUT 55 ,@TABLE_SCHEMA NVARCHAR(MAX) OUT 56 ,@TABLE_NAME NVARCHAR(MAX) OUT 57 ,@COLUMN_NAME NVARCHAR(MAX) OUT 58 ,@find_char nvarchar(max) out' 59 ,@TABLE_CATALOG OUT 60 ,@TABLE_SCHEMA OUT 61 ,@TABLE_NAME OUT 62 ,@COLUMN_NAME OUT 63 ,@find_char out--生成的查詢語句仍然需要手工加上單引號 64 FETCH NEXT FROM C1 INTO @TABLE_CATALOG 65 ,@TABLE_SCHEMA 66 ,@TABLE_NAME 67 ,@COLUMN_NAME 68 END 69 CLOSE C1 70 DEALLOCATE C1 71

?

轉載于:https://www.cnblogs.com/bgbird/p/4959228.html

總結

以上是生活随笔為你收集整理的一个比较笨的全文搜索的例子(分析结构用)-模糊查找的全部內容,希望文章能夠幫你解決所遇到的問題。

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