如果在sql中的同一个表中拼写不同,如何显示属性的名称

Posted

技术标签:

【中文标题】如果在sql中的同一个表中拼写不同,如何显示属性的名称【英文标题】:How to display the name of an attribute if it is spelled differently in the same table in sql 【发布时间】:2020-10-19 02:06:41 【问题描述】:

任务:

列出所有“学生”赞助人(赞助人的名字和姓氏,以及赞助人类型)。如果他们签出了一本书,请将其包含在输出中(书名)。您需要显示所有学生顾客,包括那些没有借出任何书籍的顾客。这将需要读者和书桌之间的 OUTER 连接。

我没有问题显示赞助人姓名和类型或已签出的书,直到它必须只显示学生赞助人(这就是问题所在),因为“学生”的拼写不同,我不知道如何在事先不知道所有这些的情况下显示所有这些。

“student”的一些拼写全小写,全大写或一些小写与一些大写混合。

目前这是我的代码的样子:

select patron.pat_fname, patron.pat_lname, patron.pat_type, book.book_title
from patron
left join checkout on checkout.pat_id = patron.pat_id
left outer join book on patron.pat_id = book.pat_id
where patron.pat_type = 'student'

我如何在事先不知道所有学生赞助人的情况下让我的代码显示所有学生赞助人?

【问题讨论】:

【参考方案1】:

解决方案会因您的数据库平台和排序规则设置(区分大小写)而异。

只需将patron.pat_type 强制为大写,然后进行比较。

select patron.pat_fname, patron.pat_lname, patron.pat_type, book.book_title
from patron
left join checkout on checkout.pat_id = patron.pat_id
left outer join book on patron.pat_id = book.pat_id
where upper(patron.pat_type) = 'STUDENT'

【讨论】:

谢谢!我不敢相信我没有考虑到这一点。

以上是关于如果在sql中的同一个表中拼写不同,如何显示属性的名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL中显示3个不同表中的多列?

在SQL中如何删除表中的unique属性

如果它们都具有相同的 id,如何将来自 sql 查询的图像存储在不同的变量下?

Access中的日期格式如何转换?

如何查找内容表 SQL 中的差异

sql语句 如何将一个表中的多条数据显示在一行呢???