Vco*_*der 0 sql t-sql sql-server
我有以下问题,一个简单的表
人:
FNAME LNAME AGE
-----------------
John Carl 22
Rupert Luis 24
Run Code Online (Sandbox Code Playgroud)
如果我执行以下T-SQL查询:
Select *
from PERSON
WHERE FNAME = 'John' AND LNAME = 'Carl'
Run Code Online (Sandbox Code Playgroud)
它没有显示任何结果......如果我放置一个OR而不是AND它确实对我来说没有意义,但它可能是正确的,我只是想明白为什么这样做?
您显示数据的方式,在姓氏的开头有一个空格.我不知道原始数据中是否属实,但在查询中确实如此.
然后字符串'CARL'和' CARL'不一样.您可以进行比较:
where ltrim(rtrim(firstname)) = 'John' and ltrim(rtrim(lastname)) = 'Carl'
Run Code Online (Sandbox Code Playgroud)
或者您可以修复数据:
update person
set lastname = ltrim(rtrim(lastname));
Run Code Online (Sandbox Code Playgroud)
或者,可能存在另一个类似问题,通常由以下原因引起: