注册 登录
编程论坛 SQL Server论坛

SELECT 语句

Kettyjin1983 发布于 2007-11-28 10:35, 2400 次点击
在数据库里明明有9233cc这个工号,但是
SELECT *
FROM dbo.Training
WHERE (Badge = '9233cc')
找不到这个工号,
如果我改成
SELECT *
FROM dbo.Training
WHERE (Badge like  '%9233cc%')
就可以了,我看了一下没有空格啊,会是什么其他原因呢,在线等
19 回复
#2
purana2007-11-28 10:37
列类型是什么?

SELECT *
FROM dbo.Training
WHERE (ltrim(rtrim(Badge)) = '9233cc')

如果这样能查..那就是空格问题.
#3
Kettyjin19832007-11-28 10:40
以楼上的方式查了,查不到,列的类型是varchar。谢谢,再帮我想想,我继续等。
#4
purana2007-11-28 10:43
如果一定有这个工号..而这个工号..前后又没有其它字符的话..一般都能查到..
而你查不到..我就不知道了.
#5
Kettyjin19832007-11-28 10:47
我也很纳闷啊,这张表我是分两次填工号的的,前面的一些工号用 select语句就可以搜到,第二次填上去的那一批就是不行了。
#6
XieLi2007-11-28 11:01
是自己填的还是导入进去的啊.
说不定有回车符呢.

[[italic] 本帖最后由 XieLi 于 2007-11-28 11:03 编辑 [/italic]]
#7
Kettyjin19832007-11-28 11:30
刚开始是自己填的,后来看不行,又从excel里导入了一次。怎么看出来有回车键的可能啊。
#8
Kettyjin19832007-11-28 11:38
我发现如果我用SELECT *
FROM dbo.Training
WHERE (Badge LIKE '9233CC%')
是可以搜索到的,也就是在9233CC后面有什么符号,我已经规规矩矩手工重新敲了一遍也不行,有没有办法清除掉9233CC后面的不知名符号。谢谢,在线等。
#9
XieLi2007-11-28 13:33
SELECT * FROM dbo.Training
WHERE SUBSTRING(BADGE,1,LEN(BADGE)-1)
='9233CC'

[[italic] 本帖最后由 XieLi 于 2007-11-28 13:43 编辑 [/italic]]
#10
Kettyjin19832007-11-28 14:57
还是不行啊,天哪,那该怎么办啊、
#11
cuizhihui2007-11-28 15:20
菜鸟来学习,呵呵。。。

是否“数据库关联的字段太多”了?

其实我一点都不懂的哦~~~`     自己瞎猜的:
SELECT *
FROM dbo.Training
WHERE (Training.Badge = '9233cc')
#12
XieLi2007-11-28 15:36
SELECT *
FROM dbo.Training
WHERE (Badge like  '9233cc%')
前面不加%可不可查出来!
或前后都不加!
#13
Kettyjin19832007-11-28 15:48
我在前面说过了select * from training where badge like '9233cc%' 这样是可以的。
前面加%不行,只有在后面才行,该表格没有关联字段。
#14
MikeFT2007-11-28 15:56
SELECT *
FROM dbo.Training
WHERE (trim(Badge) = '9233cc')
#15
Kettyjin19832007-11-28 16:05
谢谢,还是没用。不知道这个工号后面是什么东西。大家再加油啊。
#16
purana2007-11-28 16:07
你是怎么插入数据的?..
你的insert 是怎么写的?
#17
Kettyjin19832007-11-28 16:33
从excel里手工输入的,没写SQL语句。
#18
XieLi2007-11-29 06:19
一定是有回车符,
#19
bob6054172007-11-29 10:08
update  dbo.Training
set Badge = '9233cc'
where (Badge like  '9233cc%')
这样更新一下可以么?
#20
zhou2008-03-30 11:10
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
1