sql语句查询问题 以字母A为例 有数据A554433与AC445566,AT999555怎么样查出字幕A开头的为一类

后面的以AC AT开头的为一类
select * from table where id like 'A_%' 后面的可以这样查询出来 只是不知道单以字母A开头的

1,select * from table where substring(ID,0,1)='A'
2,select * from table where left(ID,1)='A'追问

你的第一条语句怎么什么也查不出来呢 第二条语句相当于 like 'A%'查询出的是所有以A开头的

追答

select * from table where substring(ID,1,1)='A'

追问

你这样改最后的效果不是和你第二条语句是一样的了吗??

追答

你想要什么结果?

追问

就是执行一条语句 只能查出A554433 执行另一条语句只可以查出AC445566,AT999555 后面这个我做好了 就是select * from table where id like 'A_%' 前面的那个不知道改怎么查出来

追答

不懂你意思,我的查询语句,满足A开头的都会查询出来。不知道你问什么

追问

就是想只查出来以A开头的,不查出来AC,AT开头的

追答

select * from table where substring(ID,1,1)='A' and (substring(ID,2,1)!='C' or substring(ID,2,1)!='T')

追问

我只是举个例子 就是要说第二个的位置不能是字母,substring(id,2,1)!='a-z'可以这样写吗 substring

追答

那你第二个位置的字符要什么类型?数字?

追问

追答

1,如果第二位严格来讲是数字和字母的类型,最傻的方法如下
select * from table where substring(ID,1,1)='A' and (substring(ID,2,1) not in ('A','B','C','D')
把要排除的字母以''的形式一个个加上。

追问

方法是挺傻的 先这么用着吧 等想到好的方法了再换吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-27
select * from [user_table] where u_id like 'A%'

select * from [user_table] where u_id like 'AC%'

select * from [user_table] where u_id like 'AT%'追问

你的方法不行 再想想

追答

我懂你意思了,就是一条模糊查出来的就是光光A打头的字段;
另外一条模糊查出来的是AC和AT打头的字段,对吗?

我效果出来了:
select * from table where id like 'A_%' and id not like'AC_%'and id not like'AT_%'

追问

不错啊 提醒了啊 我整出来了 不过也挺傻的一条语句
select * from table where id like'a%' and id not like'a_%' 这样就是我要的效果了

追答

行,出来就好~
帮助你的同时,自己也有意无意的提高了,互勉!

追问

互相学习 ↑

相似回答