VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 791|回复: 4

请教一个SQL语句的模糊查询

[复制链接]

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-22 18:40:01 | 显示全部楼层 |阅读模式

   我实现的功能是这样:
  一共分两类,第一类是比如说我想从表中查找百位数是1的记录,必须是在百位上而且为一;本身数据库表中是些三位数组成的记录,查找的结果是  135,178,176,1**之类的。
  再一类就是不分哪个位数上的,只要这三位数中有1这个数字就符合条件
  比如:178,651,216,等等之类的
回复

使用道具 举报

1

主题

21

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-2-4 17:30:02 | 显示全部楼层
1. select * from tb1 where (column1-100) between 0 and 99

2.SELECT     *
FROM         tb1
WHERE     (CAST(column1 AS varchar) LIKE '%1%')
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-2-5 02:45:01 | 显示全部楼层
r看不明白(column1-100)这是什么意思?
 还有这个CAST(column1 AS varchar)?转换?
回复

使用道具 举报

1

主题

21

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-2-6 14:45:02 | 显示全部楼层
column1就是那个列名,我不知道你的列名所以用column1代替
1.说的就是我选择的条件是column1-100在0 -99之间的数字也就是百位是1得

2CAST(column1 AS varchar)这个是类型转换,我猜你的数据库相应列应该是数值型,我们要找的里面有1得,就需要先把它转换成字符型,然后看看里面是不是有1这个字符

具体的你看看你的t-sql联机帮助,上面有相关的例子
回复

使用道具 举报

0

主题

21

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-2-12 17:00:01 | 显示全部楼层
三楼第一个问题不对吧,不应该between 100 and 99
楼主说的是千分位为1而已,数字并不是知道千分位就结束了。
用:
where mid(right(cast column1 as nvarchar,3),1,1)=‘1’
这样写吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表