首页 > 解决方案 > 如何将英尺和英寸组合成一个组合列

问题描述

结合姓氏和名字对我来说不是问题 - 如上所示。查询很好地吐出来了。但是,在此数据库模式中,英寸和英尺是分开的。当我尝试将它们组合为 height_feet + ' ' ' + height_inches 时,由于明显的原因,我得到了一个错误。将英尺和英寸结合起来的最佳方法是什么,例如,它的读数为 6'7。

我试过了

,height_feet + ''' + height_inches as 'Height'

我也试过

,concat(cast(height_feet as char), ''' ', cast(height_inches as char), '"')

两者都没有帮助我得到想要的结果。如果英尺为 5,英寸为 10,我只想读取 5'10。

SELECT TOP 10
    last_name + ', ' + first_name as 'Employee'
        ,days as 'Days Employed'
        ,height_feet
        ,height_inches
        ,ROUND(sales, 3) as 'Sales'

标签: sql-server

解决方案


在 MySQL 中进行连接的正确函数是CONCAT,因此将它用于所有连接。

您的问题只是因为您试图连接保留的 char '。为了连接单引号,您需要对其进行转义,以便将其加倍。

SELECT 
    concat(last_name, ', ', first_name) as 'Employee'
    ,days as 'Days Employed'
    ,concat(height_feet, '''',height_inches)
    ,ROUND(sales, 3) as 'Sales'
  from ...
 where ...
 LIMIT 10 -- "TOP 10" is MSSQL syntax

在此处查看示例:http ://sqlfiddle.com/#!9/9eecb/102692

编辑

我刚刚注意到,当它应该是 SQL SERVER 时,您可能已经用 MySQL 标记了您的问题。尽管如此,由于 SQL Server 具有相同的函数CONCAT,因此相同的查询将起作用,请参见此处运行的相同示例:http ://sqlfiddle.com/#!18/9eecb/54309


推荐阅读