SELECT 语句
在数据库里明明有9233cc这个工号,但是SELECT *
FROM dbo.Training
WHERE (Badge = '9233cc')
找不到这个工号,
如果我改成
SELECT *
FROM dbo.Training
WHERE (Badge like '%9233cc%')
就可以了,我看了一下没有空格啊,会是什么其他原因呢,在线等 列类型是什么?
SELECT *
FROM dbo.Training
WHERE (ltrim(rtrim(Badge)) = '9233cc')
如果这样能查..那就是空格问题. 以楼上的方式查了,查不到,列的类型是varchar。谢谢,再帮我想想,我继续等。 如果一定有这个工号..而这个工号..前后又没有其它字符的话..一般都能查到..
而你查不到..我就不知道了. 我也很纳闷啊,这张表我是分两次填工号的的,前面的一些工号用 select语句就可以搜到,第二次填上去的那一批就是不行了。 是自己填的还是导入进去的啊.
说不定有回车符呢.
[[italic] 本帖最后由 XieLi 于 2007-11-28 11:03 编辑 [/italic]] 刚开始是自己填的,后来看不行,又从excel里导入了一次。怎么看出来有回车键的可能啊。 我发现如果我用SELECT *
FROM dbo.Training
WHERE (Badge LIKE '9233CC%')
是可以搜索到的,也就是在9233CC后面有什么符号,我已经规规矩矩手工重新敲了一遍也不行,有没有办法清除掉9233CC后面的不知名符号。谢谢,在线等。 SELECT * FROM dbo.Training
WHERE SUBSTRING(BADGE,1,LEN(BADGE)-1)
='9233CC'
[[italic] 本帖最后由 XieLi 于 2007-11-28 13:43 编辑 [/italic]] 还是不行啊,天哪,那该怎么办啊、 菜鸟来学习,呵呵。。。
是否“数据库关联的字段太多”了?
其实我一点都不懂的哦~~~` 自己瞎猜的:
SELECT *
FROM dbo.Training
WHERE (Training.Badge = '9233cc') SELECT *
FROM dbo.Training
WHERE (Badge like '9233cc%')
前面不加%可不可查出来!
或前后都不加! 我在前面说过了select * from training where badge like '9233cc%' 这样是可以的。
前面加%不行,只有在后面才行,该表格没有关联字段。 SELECT *
FROM dbo.Training
WHERE (trim(Badge) = '9233cc') 谢谢,还是没用。不知道这个工号后面是什么东西。大家再加油啊。 你是怎么插入数据的?..
你的insert 是怎么写的? 从excel里手工输入的,没写SQL语句。[em04] 一定是有回车符, update dbo.Training
set Badge = '9233cc'
where (Badge like '9233cc%')
这样更新一下可以么? *** 作者被禁止或删除 内容自动屏蔽 ***
页:
[1]
