【问题标题】:SQL SELECT FROM ... AS with data type specifier?SQL SELECT FROM ... AS 带有数据类型说明符?
【发布时间】:2010-09-16 06:45:41
【问题描述】:

我在 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;

问题出在第 2 行的 Marketshare 列。StudentPerCourse 和 StudentCount 都是整数类型。

在我的 Postgresql 数据库上使用它时,Marketshare 列被评估为 int 类型,而我在这里需要一个浮点/数字。通过在 SELECT 子句上搜索 Postgresql 文档或谷歌搜索,我没有找到任何方法来指定数据类型。是否有(最好是标准 SQL)方法来指定列类型或者我在这里遗漏了什么?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    CAST() 一个或两个源列作为小数/浮点/实数/双精度/等类型。

    【讨论】:

    • 替代转换语法是“SELECT mycolumn::real FROM mytable;”但我认为 CAST() 函数更便携——你应该坚持下去。
    • 我喜欢这个速记:我希望它在不同的供应商之间得到更好的支持。
    • 例如:CAST(0 AS bit) AS BooleanColumnCAST('' AS varchar(5000)) AS LooooongStringColumn(无论如何在 TSQL/SQL*Server 中)
    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 2020-08-27
    相关资源
    最近更新 更多