求一SQL语句!

xj116 2010-03-18 03:34:11
如果用一语句中不同字段中的空值(这个空值其实是不为NULL,并且在表格中显示空白的值)全部转换为真正为习NULL的空值?
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老黎 2010-03-18
  • 打赏
  • 举报
回复
#1234都有道理

update your_table
set col1 = NULL
where replace(col1,' ','') = ''
luowen2008 2010-03-18
  • 打赏
  • 举报
回复
学习了
冰天天 2010-03-18
  • 打赏
  • 举报
回复
路过,帮顶
东那个升 2010-03-18
  • 打赏
  • 举报
回复
 

create table #( i varchar(10))
insert # select ' '
insert # select 'd'


update #
set i=nullif(ltrim(i),'')

select * from #

i
----------
NULL
d

(2 行受影响)
csuxp2008 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 xj116 的回复:]
如果用一语句中不同字段中的空值(这个空值其实是不为NULL,并且在表格中显示空白的值)全部转换为真正为习NULL的空值?
[/Quote]

不是真正的Null,无非就是含有空格的

可以

replace(字段,' ','')
dawugui 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 xj116 的回复:]
如果用一语句中不同字段中的空值(这个空值其实是不为NULL,并且在表格中显示空白的值)全部转换为真正为习NULL的空值?
[/Quote]
--select
select null as col from tb where col = ' ' or replace(col,' ','') = '' or len(replace(col,' ','')) = 0

--update
update tb set col is null where col = ' ' or replace(col,' ','') = '' or len(replace(col,' ','')) = 0
东那个升 2010-03-18
  • 打赏
  • 举报
回复

create table #( i varchar(10))
insert # select ' '

select nullif(ltrim(i),'') as i from #


i
----------
NULL

(1 行受影响)
永生天地 2010-03-18
  • 打赏
  • 举报
回复
update t set c=null where ltrim(rtrim(c))=''

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧