我试图连接SQL Server 11.00.3393中的查询中的多个列。
我尝试了新功能 CONCAT()
但是当我使用两列以上时它不起作用。
所以我想知道这是否是解决问题的最佳方法:
SELECT CONCAT(CONCAT(CONCAT(COLUMN1,COLUMN2),COLUMN3),COLUMN4) FROM myTable
我不能用 COLUMN1 + COLUMN2
因为 NULL
值。
编辑
如果我试试 SELECT CONCAT('1','2','3') AS RESULT
我收到一个错误
CONCAT函数需要2个参数
通过话语很清楚,问题在于使用VS2010来编写查询,因为它使用了规范 CONCAT()
功能限于2个参数。可能有一种方法可以改变它,但我不知道它。
替代:
SELECT '1'+'2'+'3'
此方法需要将非字符串值转换/转换为字符串,以及 NULL
通过处理 ISNULL()
要么 COALESCE()
:
SELECT ISNULL(CAST(Col1 AS VARCHAR(50)),'')
+ COALESCE(CONVERT(VARCHAR(50),Col2),'')
SELECT CONCAT(LOWER(LAST_NAME), UPPER(LAST_NAME)
INITCAP(LAST_NAME), HIRE DATE AS ‘up_low_init_hdate’)
FROM EMPLOYEES
WHERE HIRE DATE = 1995
尝试使用以下:
SELECT
(RTRIM(LTRIM(col_1))) + (RTRIM(LTRIM(col_2))) AS Col_newname,
col_1,
col_2
FROM
s_cols
WHERE
col_any_condition = ''
;
大段引用
使用串联 Oracle SQL 很容易也很有趣。但是对MS-SQL了解不多。
大段引用
在这里我们选择Oracle:
句法:
SQL> select First_name||Last_Name as Employee
from employees;
结果:员工
EllenAbel
SundarAnde
MozheAtkinson
这里AS:关键字用作别名。
我们可以连接 空值 值。
例如:columnm1 || Null
假设您的任何列都包含 空值 然后,结果将仅显示具有值的该列的值。
你也可以使用 文字字符串 在连接中。
例如
select column1||' is a '||column2
from tableName;
结果:column1是column2。
文字之间应该用单引号括起来。你cna排除数字。
注意:这仅适用于oracle服务器// SQL。
如果字段可以为空,那么您将必须处理这些空值。请记住,null是具有传染性的,并且 concat('foo', null)
只是导致 NULL
以及:
SELECT CONCAT(ISNULL(column1, ''),ISNULL(column2,'')) etc...
基本上测试每个字段的空值,如果是,则替换为空字符串。