当前位置:首页 » 编程语言 » sqlserverlikein

sqlserverlikein

发布时间: 2022-09-01 22:21:58

A. sql server 中 in 和like 有什么区别

首先是in,in在检索语句当中检索出来的值和列表提供的值是完全符合的。比如数据当中有一个值是一个字符'name’那么在in语句当中你就要写成“in('name')”他还可以配合not使用,仅不过意思相反。
其次是like,like和in是有一定区别的,like一般与通配符一起使用,他可以检索出一些特地定格式的字符。比如在一系列的数据当中,你要求检索出以数字1开头的数据,你就可以使用like'1%'。这里要说明一下sql提供的通配符主要有四种 '%', '_', '[ ]', '[ ^ ]'。下面对通配符做一些简单说明:
1、'%'其后可用于接无数个字符串:在查询中如此使用like 's_',即可查出以s开头的值;
2、'_'其后仅可以得到一个字符,如以sales为例,like's_'如此使用,不能找出sales,而应like 'sale_'即可查出sales;
3、'[ ]'表示出现的字符是在一定的范围内,一般情况下它是配合'%'使用的。如like ’p[ r,o]%,他就可以查出以p开头的值,并且其后第二个字符,是r,或者是o,即pocket,proct、、、
4、 '[ ^ ]'是与其相反的,如like ‘ p[^ r,o]% ',就是检索出以p开头但第二个字符不是r或o的字符。
希望我的回答能对你有所帮助

B. sql server like 一个字段。 例如:select * from 表 where 字段1 like '%字段2%'

sql 中 like 要引用一个字段的值,需要使用连接符‘+’

所以原语句:select * from 表 where 字段1 like '%字段2%'
需要更改为:select * from 表 where 字段1 like '%'+字段2+'%'

SQL Server中 用 + 来连接字符串。如果不是字符类型,应先转换成字符类型。
也就是说,如果语句中的’字段2‘为数值型字段那么,语句需要更改为:
select * from 表 where 字段1 like '%'+cast(字段2 as varchar(20))+'%'

C. 在sql server 中like 一个字段

由于不知道你是用SQLSERVER还是ORACLE,我就先给你一个SQLSERVER版本的吧!
如果你的字段定义是id为字符类型(nvarchar或varchar),而goid也是字符类型的话就很简单了!
直接用like或者charindex就行了!

测试sql如下:
create table #1(id varchar(10),goid varchar(10));
insert into #1( id,goid)values('123456','345'),('222444','123'),('56789','89'),('123','1');
select * from #1 where id like '%'+goid+'%';
select * from #1 where charindex(goid,id)>0;
drop table #1;

如果你的字段定义是id为字符类型(nvarchar或varchar),而goid是整型(int,tinyint等)的话就要转换一下!

测试sql如下:
create table #2(id varchar(10),goid int);
insert into #2( id,goid)values('123456',345),('222444',123),('56789',89),('123',1);
select * from #2 where id like '%'+convert(varchar,goid)+'%';
select * from #2 where charindex(convert(varchar,goid),id)>0;
drop table #2;

如果不属于上面两种情况,参考照转换方法都可以解决!

下面是ORACLE版本的!
因为ORACLE会自己来处理这些问题,直接用like或instr就行了!不分类型哈!

测试sql如下:
create table t1 (id nvarchar2(10),goid varchar(10));
insert into t1( id,goid)values('123456','345');
insert into t1( id,goid)values('222444','123');
insert into t1( id,goid)values('56789','89');
insert into t1( id,goid)values('123','1');
select * from t1 where id like '%'||goid||'%';
select * from t1 where instr(id,goid)>0;
drop table t1;

D. 请教一下关于sql server中模糊匹配字段(如like '%'),如果想模糊匹配多种字符,应该怎么做

字段1 like '%12[1-9]%'可以简化

字段1 like '%121%' or 字段1 like '%122%' or 。。。到 字段1 like '%129%'

如果从%121%到%180%,可以用
字段1 like '%1[2-7][1-9]%' or 字段1 like '%180%'

其它情况的话找出规律,可以简化,不一定要一个like搞定
希望能给你启发

E. 求SQL SERVER 里 LIKE语法

SELECT * FROM XXX WHERE LIKE '___81%';
这里要注意sql中通配符有两个“_”和“%”,“_”表示任意的一个字符,“%”表示任意的一段字符(包括没有)。上面的答案中“___81%”前面是连续三个“_”。
当然楼上的
SELECT * FROM XXX WHERE substring(字段名,4,2)='81'
也是可以的,用到了substring(字段名,起始位置,长度)这个函数。

F. sql server2005 里有这样一条sql ,in子句里包括一个like子句,有没有好办法解决这样的嵌套

不如你把你的需求发出来,你这样说不太好解决,因为不知道需求就不知道有没有其他什么办法来处理。
你可以试试用Union all,将IN里面的每一项分开来,然后Union all,这样的效率肯定比你描述的这种嵌套好些。

G. sql里like in能组合用吗的相关推荐

保留字like在sql里与+-*/一样是运算符之一,可用like运算符来找出符合指定样式的字段值。它通常要结合通配符表达式一起使用。

保留字in在sql里的作用多一些,其作用之一也与+-*/一样是运算符,用“in运算符”可判断表达式的数值是否等于指定列表中几个数值中的一个;

其作用之二为设置sql子查询,用“in子查询”的结果可以对主查询实施筛选,筛选效果与in运算符相同;另外不同种类的数据库in还可能有一些其他特殊用途,例如in在access数据库里还可以连接外部数据表等。

SQL对like 操作中的特殊字符处理方法:

SQL Server查询过程中,单引号 ' 是特殊字符,所以在查询的时候要转换成双单引号 '' 。

在like操作还有以下特殊字符:下划线_,百分号%,方括号[],尖号^。

下划线:用于代替一个任意字符(相当于正则表达式中的 ? ) 百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )

以上内容参考:网络-SQL LIKE

H. 数据库like前匹配快还是in

数据库前匹配快in。

like最差,特别是以%(有的数据库是*)开头的匹配,是无法进行索引的,只有顺序扫描。

首先是=,表示值必须是一个特定的值。然后是in,表示值是几个特定的值中的一个。最后是like,通过匹配来查找值。其实还有一个is,只为null使用。

SQL对like 操作中的特殊字符处理方法:

SQL Server查询过程中,单引号 ' 是特殊字符,所以在查询的时候要转换成双单引号 '' 。

在like操作还有以下特殊字符:下划线_,百分号%,方括号[],尖号^。 其用途如下:下划线:用于代替一个任意字符(相当于正则表达式中的 ? ) 百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )。

方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)。

尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)。

I. sql 多关键字模糊查询

如果是ORACLE可以用正则表达式
select * form table_name t where regexp_like(t.id,'1077130|1099697')

热点内容
安卓网络编程怎么用 发布:2025-01-16 03:04:45 浏览:897
湖南it服务器怎么样 发布:2025-01-16 03:01:01 浏览:246
图中两种配置哪个好 发布:2025-01-16 02:59:28 浏览:580
如何解开密保密码 发布:2025-01-16 02:57:44 浏览:21
中国银行查询密码是什么 发布:2025-01-16 02:33:20 浏览:792
坚果pro录音文件夹 发布:2025-01-16 02:31:46 浏览:940
支付宝的登录密码忘记了如何改 发布:2025-01-16 02:30:30 浏览:222
解压作业泥 发布:2025-01-16 02:28:02 浏览:808
我的世界rpg服务器空岛 发布:2025-01-16 02:26:49 浏览:91
ps脚本函数 发布:2025-01-16 02:15:28 浏览:482