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为空怎么办?以及如何将国家名称改为像英国这样的缩写形式,而不是英国