
1、我们新建查询后,写上Select关键字。
2、紧接着我们输入字段名,显示全部字段的话可以用星号表示。
3、接下来我们输入From关键,紧接着表名。
4、表名后面立刻接着Where关键字。
5、Where后面的为我们的条件,可以写上任意合法的条件。
6、当我们整句语句写完后,我们就能执行查看我们的运行结果了。
select filename from oa_file where filename not like '%[!-¥]%'
或者这个:
select filename from oa_file where filename not like '%[!-?]%'
出现的问题就是问号和问好也是不一样的,比如说英文标点半角的问号是“?”,英文标点全角的问号是“?”但是中文半角问号是“?”中文全角的问号是“?”
这些都是不一样的,你搜出来的都是带有英文半角问号的文件。
扩展资料:SQL中的字段“包含”与“包含于”字符串的写法
1、查询表中某字段值“包含”某字符串的所有记录的方法
假如表中有一个name字段,查询name包含“张三”的所有记录,可以这样写sql:
Stirng strsql="SELECT * FROM 表名 WHERE name LIKE ’%"+"张三"+"%’"
2、查询某字段值“包含于”某个字符串的所有记录的方法
如果查询表中name字段包含于字符串“张三是个好学生”的所有记录,可以这样写sql:
String strsql="SELECT * FROM 表名 WHERE INSTR(’张三是个好学生’,name)>0"
即可查询,记录中的name字段值中包括:张、三、是、个、好、学、生、张三、......等所有记录。
注:以上sql字符串中请将全角符号改为半角符号。
CREATE PROCEDURE [dbo].[findStringFromSys]-- Add the parameters for the stored procedure
@StringName varchar(255)
AS
BEGIN
--1.定义需要查找的关键字。在搜索中,使用模糊搜索:LIKE '%@key_find%'
DECLARE @key_find NVARCHAR(MAX) = @StringName--假设是找字符串"123"
--2.用游标Cursor_Table,遍历所有表
DECLARE Cursor_Table CURSOR FOR
SELECT name from sysobjects WHERE xtype = 'u' AND name <>'dtproperties'
OPEN Cursor_Table
DECLARE @tableName NVARCHAR(MAX)
FETCH NEXT from Cursor_Table INTO @tableName
WHILE @@fetch_status = 0
BEGIN
DECLARE @tempSQLText NVARCHAR(MAX) = ''
--3.在表中,用游标columnCursor,遍历所有字段。注意,只遍历字符串类型的字段(列)
DECLARE columnCursor CURSOR FOR
SELECT Name FROM SysColumns WHERE ID = Object_Id( @tableName ) and
(
xtype = 35 or --text
xtype = 99 or --ntext
xtype = 167 or --varchar
xtype = 175 or --char
xtype = 231 or --nvarchar
xtype = 239 or --nchar
xtype = 241 --xml
)
OPEN columnCursor
DECLARE @columnName NVARCHAR(MAX)
FETCH NEXT from columnCursor INTO @columnName
WHILE @@fetch_status = 0
BEGIN
--4.在表的字段中,对每一行进行模糊搜索,并输出找到的信息。
DECLARE @DynamicSQLText NVARCHAR(MAX) = 'IF ( EXISTS ( SELECT * FROM [' + @tableName + '] WHERE [' + @columnName + '] LIKE ''%' + @key_find + '%'' ) ) BEGIN DECLARE @CurrentTableCount Bigint = ( SELECT COUNT(*) From [' + @tableName + '] )PRINT ''Find : Table [' + @tableName + '], Column [' + @columnName + '], Row Count:'' + CAST( @CurrentTableCount AS NVARCHAR(MAX) ) + ''.'' END'
EXEC( @DynamicSQLText )
FETCH NEXT from columnCursor INTO @columnName
END
exec(@tempSQLText)
CLOSE columnCursor
DEALLOCATE columnCursor
FETCH NEXT from Cursor_Table INTO @tableName
END
CLOSE Cursor_Table
DEALLOCATE Cursor_Table
END
GO
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)