带有数据类型说明符的 SQL SELECT FROM ... AS 是什么意思?

11

我在Postgresql上有一个SQL查询的问题。这个select子句是关于数据库的一个讲座的例子:

1 select t.CourseNr, t.StudentsPerCourse, g.StudentCount, 
2        t.StudentsPerCourse/g.StudentCount as Marketshare
3 from (select CourseNr, count(*) as StudentsPerCourse
4       from taking
5       group by CourseNr) t,
6      (select count(*) as StudentCount
7       from Students) g;

问题出在第二行的Marketshare列上。StudentsPerCourse和StudentCount都是整数类型。

当在我的Postgresql数据库中使用时,Marketshare列被评估为int类型,而我需要一个float/numeric类型。我在SELECT子句上搜索Postgresql文档并通过谷歌搜索,但没有找到指定数据类型的方法。是否有一种(最好是标准SQL)指定列类型的方式,还是我漏掉了什么?

1个回答

10

CAST()函数将源列中的一个或两个列转换为十进制数/浮点数/实数/双精度等类型。


1
备选的类型转换语法是“SELECT mycolumn :: real FROM mytable;”,但我认为CAST()函数更具可移植性 - 你应该坚持使用它。 - Neall
我喜欢那个速记法:但愿它能在不同的供应商之间得到更好的支持。 - Joel Coehoorn
1
例如:在TSQL/SQL*Server中,CAST(0 AS bit) AS BooleanColumnCAST('' AS varchar(5000)) AS LooooongStringColumn - Campbeln

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接