Oracle SQL查询显示空结果

时间:2017-03-01 06:56:13

标签: sql oracle

我正在编写一个简单的查询来显示表格中列的名称。

这是我使用的SQL:

select column_name from cols where table_name='StudentInfo';

由于某种原因,即使我的StudentInfo表确实有列,此查询也会产生一个空结果表。

2 个答案:

答案 0 :(得分:2)

表名可能以大写字母存储,因此条件table_name='StudentInfo'失败。请注意,Oracle(以及我所知道的大多数其他RDBMS)以区分大小写的方式比较字符串。对于不区分大小写的比较,请在两个参数上使用UPPER(或LOWER)。因此,以下查询应该可以安全地运行:

select column_name from cols where upper(table_name)=upper('StudentInfo')

还有其他方法可以将字符串比较转换为不区分大小写,例如更改会话参数NLS_COMPNLS_SORT(例如,参见https://stackoverflow.com/a/5391234/2630032,并在适用的情况下提交此引用)。但是,通过使用UPPER,您可以使查询独立于此类设置。

答案 1 :(得分:1)

你可以这样做:

select column_name from cols where lower(table_name) like '%studentinfo%'