SQLServer2008中的SQL操作

SQLServer2008中的SQL操作,sql,sql-server,Sql,Sql Server,我有两列LocationCity和LocationCountry。我需要将它们连接到一个列中 我现在得到的是: select LocationCity, LocationCountry from Location 这将产生如下输出: Hitchin,England United Kingdom 但我期望的结果是: Hitchin, England, UK 如何实现这一点?字符串连接 适用于SQL 2012或更高版本 对于SQL Server 2012或更新版本

我有两列
LocationCity
LocationCountry
。我需要将它们连接到一个列中

我现在得到的是:

select 
    LocationCity, LocationCountry 
from 
    Location
这将产生如下输出:

 Hitchin,England    United Kingdom
但我期望的结果是:

Hitchin, England, UK
如何实现这一点?

字符串连接 适用于SQL 2012或更高版本 对于SQL Server 2012或更新版本,您可以使用
CONCAT
功能

SELECT CONCAT(
  REPLACE(LocationCity, ',', ', ')
  , ', '
  , LocationCountry
)
FROM Location
根据SQL 2012 对于SQL Server 2012之前的版本,没有
CONCAT
函数,但可以使用字符串连接:

SELECT (
  REPLACE(LocationCity, ',', ', ')
  + ', '
  + LocationCountry
)
FROM Location
如果
LocationCity
可为空,请使用以下查询

SELECT (
  ISNULL(
    REPLACE(LocationCity, ',', ', ') + ', '
    , ''
  )
  + LocationCountry
)
FROM Location
SELECT (
  ISNULL(
    NULLIF(
      REPLACE(LocationCity, ',', ', ')
      , ''
    ) + ', '
    , ''
  )
  + LocationCountry
)
FROM Location
如果
LocationCity
为空,则必须作为null使用以下查询

SELECT (
  ISNULL(
    REPLACE(LocationCity, ',', ', ') + ', '
    , ''
  )
  + LocationCountry
)
FROM Location
SELECT (
  ISNULL(
    NULLIF(
      REPLACE(LocationCity, ',', ', ')
      , ''
    ) + ', '
    , ''
  )
  + LocationCountry
)
FROM Location
将LocationCountry转换为缩写形式 这可能需要添加另一个表或另一列(脏方式)
其中包含
LocationCountry
列的缩写形式

然后您可以像以前一样连接它。
如果数据包含在另一个表中,您可能需要放入一个
JOIN

工具书类


首先尝试搜索这是一个非常常见的问题。我们如何知道如何将
英国
翻译为
英国
?简单问题可能重复,无需在此提问。我遇到了一个错误:“CONCAT”不是公认的内置函数名。请尝试
LocationCity | |',“| LocationCountry
。(ANSI SQL版本。)您在@user8096071上的SQL版本是什么?SQL server 2008如果LocationCity为空怎么办?以及如何将国家名称改为像英国这样的缩写形式,而不是英国