SQL Server查询特定ID乘客信息的语法问题求助
SQL Server查询特定ID乘客信息的语法问题求助
嗨,我来帮你搞定这个SQL查询的小问题~你找特定ID乘客的思路是对的,但WHERE子句的语法确实出了点差错,导致要么返回空结果要么报错,我给你拆解清楚:
先说说你之前的两个错误写法为啥不行:
WHERE ID_PASS = 344 AND 346:这个逻辑有问题,SQL会把单独的346当成布尔值(非零数字在SQL里会被判定为TRUE),所以这个条件等价于ID_PASS = 344 AND TRUE,只会尝试查找ID为344的乘客,如果你的数据库里这个ID没有对应数据,自然就返回空结果了。WHERE ID_PASS = 344, 346:SQL语法里根本不支持用逗号分隔条件的写法,所以直接触发报错是正常的。
接下来给你两种正确的写法,都能满足你查询ID为344和346的乘客姓名及ID的需求:
方法1:用OR连接多个相等条件(适合少量ID)
这种写法逻辑直观,新手也容易理解:
SELECT ID_PASS, NOM, PRENOM FROM PASSAGER WHERE ID_PASS = 344 OR ID_PASS = 346
注意我把ID_PASS加到了SELECT列表里,这样你就能同时看到每条记录对应的乘客ID,刚好符合你要“拉取ID编号和姓名”的需求。
方法2:用IN关键字(更推荐,适合多ID场景)
如果后续要查更多ID,用IN会更简洁,代码可读性也更高:
SELECT ID_PASS, NOM, PRENOM FROM PASSAGER WHERE ID_PASS IN (344, 346)
IN后面的括号里可以直接列出所有要匹配的ID值,SQL会自动匹配其中任意一个符合的记录。
试试这两种写法,应该就能得到你想要的结果啦~
备注:内容来源于stack exchange,提问作者Alex d'Astous
相关产品推荐
相关产品推荐

