为什么T-SQL会将查询中的字符串值识别为列名?
问题原因
T-SQL 语法中,双引号默认用于标识数据库对象名(比如列名、表名),而非字符串值。你在过滤条件里用双引号包裹Scholar,数据库会把它识别为列名去Badges表匹配,自然找不到对应的列,才会抛出无效列名的错误。
修复方案
直接把Scholar两侧的双引号换成单引号即可,修改后的查询语句如下:
SELECT COUNT(Id) FROM Badges WHERE Name = 'Scholar'
运行后就能得到Scholar徽章的总授予次数。
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

