SQL Server,如何将两列合并为一列?

11

我有一个 SQL 查询

SELECT TABLE_SCHEMA + TABLE_NAME AS ColumnZ 
FROM information_schema.tables
我希望结果应该是table_Schema.table_name。 请帮帮我!

3
使用SELECT TABLE_SCHEMA + '.' + TABLE_NAME语句来连接表模式和表名。 - marc_s
4个回答

19

试一下这个:

SELECT TABLE_SCHEMA + '.' + TABLE_NAME AS ColumnZ 
FROM information_schema.tables

1
谢谢。非常简单的“+”运算符将列合并为单个列。 - MSTdev

6
这段代码适用于你,试试这个...
SELECT Title,
FirstName,
lastName, 
ISNULL(Title,'') + ' ' + ISNULL(FirstName,'') + ' ' + ISNULL(LastName,'') as FullName 
FROM Customer

5
SELECT CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) AS ColumnZ FROM information_schema.tables

5
注意:CONCAT是SQL Server 2012中的新功能,因此可能无法提供给提问者。 - marc_s
2
@marc_s 我不知道这个,如果我将来需要使用旧版 MSSQL,这将非常有用,谢谢。 - Dai
5
在我看来,一个新功能并不意味着答案不值得被踩。 - Gordon Linoff
1
@GordonLinoff:为了绝对清楚,这不是我的反对票;我同意你的观点——这是一个新功能,但它是正确的——适用于那个更新版本的SQL Server。没有必要进行反对票... - marc_s

2

从 SQL Server 2017 开始,有一个 CONCAT_WS 操作符,用于带分隔符的字符串连接。

SELECT CONCAT_WS('.', TABLE_SCHEMA ,TABLE_NAME) AS ColumnZ 
FROM information_schema.tables

1
这对于处理空值非常有用,您不想要额外的分隔符,并且如果列被包装在NULLIF()中,则可以对其中的空字符串执行相同操作。 - Mark E.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接