Sql server 连接Tsql中的空值列
我使用Sql server 连接Tsql中的空值列,sql-server,tsql,Sql Server,Tsql,我使用+连接几列的值。但是,+如果其中一列的值为空,则该列不起作用。比如说 Select null+ 'Test' 查询返回null而不是“Test” 你对解决那个问题有什么建议 在SQL Server 2012之前的版本上,您应该使用 Select ISNULL(YourColumn,'') + 'Test' /*Or COALESCE(YourColumn,'')*/ 为了避免这个问题 有一个连接选项,但已弃用 SQL Server 2012引入了在连接时将NULL视为空字符串的函
+
连接几列的值。但是,+
如果其中一列的值为空,则该列不起作用。比如说
Select null+ 'Test'
查询返回null而不是“Test”
你对解决那个问题有什么建议 在SQL Server 2012之前的版本上,您应该使用
Select ISNULL(YourColumn,'') + 'Test' /*Or COALESCE(YourColumn,'')*/
为了避免这个问题
有一个连接选项,但已弃用
SQL Server 2012引入了在连接时将NULL
视为空字符串的函数
SELECT CONCAT(null,'Test')
使用:
有没有其他方法可以解决这个问题?我正在将我的项目从oracle迁移到mssql,我不想将isnull控件添加到每个control@jhash-我知道的仅有3种方式已经在我的答案中了
ISNULL
,COALESCE
,或CONCAT\u NULL\u产生\u NULL
。我只想将COALESCE
添加到所有相关的位置,因为这是标准的,可以在Oracle和SQL Server中使用。如果您想使用不推荐使用的功能,但这些功能在将来的版本中将停止工作,并且此连接选项与某些SQL Server功能不兼容,则由您决定。我自己不会使用它。@jhash-尽管我怀疑我的断言,它现在能在Oracle上工作COALESCE
肯定会,但AFAIK Oracle将空字符串视为NULL,因此我不知道最终结果会是什么!这可能并不重要,因为Oracle没有使用+
进行字符串连接。有没有其他方法可以解决这个问题?我正在将我的项目从Oracle迁移到mssql,我不想将isnull控件添加到每个控件我想Martin有一个解决方案,可以在不更改查询的情况下工作
SELECT IsNull(MyColumn, '') + 'Test' ...