两个简单的SQL查询问题,请赐教!
1.如何在SQL语句中做判断,比方说ABC表ZXC列是身份证号,要查询出尾数是1 3 5 7 9 如果尾数是X那么倒数第二个数是1 3 5 7 9 的全部记录。
2.SELECT * FROM ABC WHERE ZXC = '1111111111' and ZXC = '22222222' and ZXC = '3333333'
我记得ZXC=?这里需要查询的内容可以用分隔符,不必用AND那么麻烦。
问题点数:20、回复次数:9Top
1 楼ping3000(苦练葵花点穴手)回复于 2006-03-01 16:50:53 得分 0
select ZXC from 表 where right(ZXC,5) = '13579' or right(ZXC,6) = '13579X'Top
2 楼ping3000(苦练葵花点穴手)回复于 2006-03-01 16:52:32 得分 0
第二个可以这样写:
SELECT * FROM ABC WHERE ZXC IN('1111111111','22222222','3333333')
Top
3 楼znjgress(四空和尚)回复于 2006-03-01 16:58:14 得分 0
楼上解正Top
4 楼qyflaoda(戒骄戒躁)回复于 2006-03-01 17:02:39 得分 0
1. select * FROM ABC WHERE ZXC like '%1' or ZXC like '%3' or ...ZXC like '%1x' ...Top
5 楼ping3000(苦练葵花点穴手)回复于 2006-03-01 17:05:02 得分 0
不好意思
2.SELECT * FROM ABC WHERE ZXC = '1111111111' and ZXC = '22222222' and ZXC = '3333333'
这个看错了 是 "and"
不过这样查询是没有结果的Top
6 楼qyflaoda(戒骄戒躁)回复于 2006-03-01 17:05:42 得分 0
. select * FROM ABC WHERE right(ZXC,1) in ('1','3','5','7','9') or right(ZXC,2) in ('1x','3x','5x','7x','9x')Top
7 楼mislrb(上班看看早报,上上CSDN,下班看看电影)回复于 2006-03-01 17:06:50 得分 20
--1.如何在SQL语句中做判断,比方说ABC表ZXC列是身份证号,要查询出尾数是1 3 5 7 9 如果尾数是X那么倒数第二个数是1 3 5 7 9 的全部记录。
select * from abc where cast(right(zxc,1) as int)%2=1 and cast(left(right(zxc,2),1) as int)%2=1
--2.SELECT * FROM ABC WHERE ZXC = '1111111111' and ZXC = '22222222' and ZXC = '3333333'
--我记得ZXC=?这里需要查询的内容可以用分隔符,不必用AND那么麻烦。
SELECT * FROM ABC WHERE ZXC in (''1111111111','22222222','3333333')
Top
8 楼BabySky716(吃睡等死)回复于 2006-03-02 14:28:17 得分 0
楼上:第二个问题这样解决了。
第一个问题,因为zxc列数据是身份证号,不可避免其中有最后含有X,cast(right(zxc,1) as int) 这样的话因为其中有数据X无法转换成INT类型
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 'X' 转换为数据类型为 int 的列时发生语法错误。
Top
9 楼fengyaner(风颜儿)回复于 2006-03-02 14:54:14 得分 0
select ZXC from 表 where right(ZXC,5) = '13579' or right(ZXC,6) = '13579X'Top




