如何用NULL替换空格

时间:2014-05-17 11:04:37

标签: sql sql-server

我在sql server 2012中有一个包含空格的列。我想用NULL替换这些空格。我写了以下查询,但它不起作用。

SELECT replace(COLUMN1, '',NULL) 
FROM Orders;

如何实现上述功能。提前谢谢。

5 个答案:

答案 0 :(得分:10)

使用nullif

select nullif(Column1, '') from Orders

答案 1 :(得分:0)

如果您想要处理值由空格组成或长度为零的情况,请使用ltrim()like

 select (case when value like '%[^ ]%' then value end)

类似地,

select (case when ltrim(value) <> '' then value end)

答案 2 :(得分:0)

select REPLACE(ColumnName,'',NULL)as tb from TableName

答案 3 :(得分:0)

以下查询:

select REPLACE(ColumnName,'',NULL)as tb from TableName 
无法使用

,因为它仅返回NULL返回此列的所有值。因为如果Replace函数的任何参数为null,则它只返回NULL。

建议使用NULLIF(columnName, '')

答案 4 :(得分:0)

声明@Blank nvarchar(1)=&#39;&#39;

SELECT nullif(COLUMN1,@ Blank) 来自订单;

如果空白,则将所有COLUMN1记录选为空。