我在sql server 2012中有一个包含空格的列。我想用NULL替换这些空格。我写了以下查询,但它不起作用。
SELECT replace(COLUMN1, '',NULL)
FROM Orders;
如何实现上述功能。提前谢谢。
答案 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记录选为空。