sql 查询 不包含 某些字符串 255
写sql语句:某个字段是IP地址,这样的1.1.1.1查询出不在某些C段的IP地址,这些C段地址从另一个表取出,格式1.1.1.我的思路是先把从B表取出C段地址如1.1....
写sql语句: 某个字段是IP地址,这样的1.1.1.1
查询出不在某些C段的IP地址,这些C段地址从另一个表取出,格式1.1.1.
我的思路是先把从B表取出C段地址如1.1.1.生成1.1.1.1到1.1.1.255,然后将这些生成的IP地址集合跟A表的IP地址minus。
谁能实现?
------------------------
A表
IP字段(都是IP地址)
1.1.1.1
。。。。
255.255.255.255
B表
IP字段(都是C段地址)
1.1.1.
。。。
255.25.2.
查询A表中IP地址不在B表中C段地址的记录 展开
查询出不在某些C段的IP地址,这些C段地址从另一个表取出,格式1.1.1.
我的思路是先把从B表取出C段地址如1.1.1.生成1.1.1.1到1.1.1.255,然后将这些生成的IP地址集合跟A表的IP地址minus。
谁能实现?
------------------------
A表
IP字段(都是IP地址)
1.1.1.1
。。。。
255.255.255.255
B表
IP字段(都是C段地址)
1.1.1.
。。。
255.25.2.
查询A表中IP地址不在B表中C段地址的记录 展开
展开全部
sql 查询 不包含 某些字符串?
基础的总结和解释(基于SQL Server):
先来个基础的导图,来源于脚本之家:

基础的语句总结和解释:
1.选择前百分之多少的数据:
SELECT TOP 50 PERCENT * FROM Websites;2.常用通配符:通配符 描述
%替代 0个或多个字符
_替代一个字符
[charlist]
字符绝喊列中的任何单一字符
[^charlist]
或
[!charlist]
不在字符列
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
‘_a_’ //正宏姿三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
首先说下LIKE命令都涉及到的通配符:
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
其中搭配以上通配符可以让LIKE命令实现多种技巧:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)3.别名:在下面的情况下,使用别名很有用:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起4.连接:不同的 SQL JOIN
在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中举绝一个表中存在匹配,则返回行
基础的总结和解释(基于SQL Server):
先来个基础的导图,来源于脚本之家:

基础的语句总结和解释:
1.选择前百分之多少的数据:
SELECT TOP 50 PERCENT * FROM Websites;2.常用通配符:通配符 描述
%替代 0个或多个字符
_替代一个字符
[charlist]
字符绝喊列中的任何单一字符
[^charlist]
或
[!charlist]
不在字符列
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
‘_a_’ //正宏姿三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
首先说下LIKE命令都涉及到的通配符:
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
其中搭配以上通配符可以让LIKE命令实现多种技巧:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)3.别名:在下面的情况下,使用别名很有用:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起4.连接:不同的 SQL JOIN
在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中举绝一个表中存在匹配,则返回行
展开全部
有2个方法实现:
1 内网C类的IP地址是 192.168.0.0到192.168.255.255,外网的C类IP地址是 192.0.0.0到223.255.255.255 按这个判断应该很简单吧。
2 把223.255.255.255转成2进制的号码后再判断
能否描述清楚你的掘余问题,最好截图看看
A表
IP字段(都是IP地址液散铅)
1.1.1.1
。。。。
255.255.255.255
B表
IP字段(都是C段地址)
1.1.1.
。。闹好。
255.25.2.
能否具体举例子,看不懂这里为什么是这样的,特别是B表,怎么是1.1.1. 这不是完整的IP地址吧。
1 内网C类的IP地址是 192.168.0.0到192.168.255.255,外网的C类IP地址是 192.0.0.0到223.255.255.255 按这个判断应该很简单吧。
2 把223.255.255.255转成2进制的号码后再判断
能否描述清楚你的掘余问题,最好截图看看
A表
IP字段(都是IP地址液散铅)
1.1.1.1
。。。。
255.255.255.255
B表
IP字段(都是C段地址)
1.1.1.
。。闹好。
255.25.2.
能否具体举例子,看不懂这里为什么是这样的,特别是B表,怎么是1.1.1. 这不是完整的IP地址吧。
追问
说了是C段地址。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--思路把A表IP变成顷雹坦同B表一样再去雀桐肆禅对比查询
select ip form [A表]
where substring(ltrim(rtrim(ip)),1,(LEN(ltrim(rtrim(ip)))-CHARINDEX('.',REVERSE(ltrim(rtrim(ip)))))+1) not in(
select ltrim(rtrim([C段ip])) from [B表])
追问
我要查的数据出自A表,不是B表。。。。。
追答
不是查询A表中在B表没有对应的数据么,如果是就是上面的语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个能实现吗?我也想知道,在数据库中直接查询应该不能只查一半留一半吧
追问
实现了,把B表的数据整到excel中全部弄成全D段,如1.1.1弄成1.1.1.1一直到1.1.1.255。
把这些所有的D段,写入一个新表(C表)
A minus C就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询