如何将英尺和英寸合并为一个合并的列

时间:2019-08-18 01:20:17

标签: sql-server

将姓氏和名字组合在一起对我来说不是问题-如上所示。该查询吐出罚款。但是,在此数据库模式中,英寸和英尺是分开的。当我尝试将它们组合为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'

1 个答案:

答案 0 :(得分:1)

在MySQL中进行串联的正确函数是CONCAT,因此将其用于所有串联。

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

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

编辑

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