第一个SQL语句不对,ISNULL只检测时候为NULL,但是数据为0时,ISNULL()为False,所以不符合要求。 正确的应该是: select case aa when 0 then "" else "1" end,case bb when 0 then "" else "1" end from TableName
select case aa when 0 then "" else "1" end,case bb when 0 then "" else "1" end,case cc when 0 then "" else "1" end,case dd when 0 then "" else "1" end from TableName 如果你用的数据库是Oracle的话,会更简单一点,直接用函数 decode 就行了。
用的是SQLSERVER,不是ORACLE 请楼上的测试一下,得到的结果是不对的。 等于0的显示的还是0,和直接用SELECT AA,BB,CC,DD FROM TABLENAME得到的结果一样。
好了。 select case aa when 0 then "" else str(aa,2,1) end,case bb when 0 then "" else str(bb,2,1) end from TableName str 函数的用法你知道吧,str(要转换的数字,转换后的总长度,转换后的小数位数),其中的长度和小数位数就看你怎么取舍了。
select '' as col1 from table where col1=0
select case aa when 0 then "" else aa end,case bb when 0 then "" else bb end from TableName
to firetoucher: 这个SQL语句看起来是挺不错的,可惜实际上它会把所有的记录都显示出来,与select * from TableName 没有什么差别。
不对把,isnull(aa,"")是如果aa为NULL,则显示为""
正确的应该是:
select case aa when 0 then "" else "1" end,case bb when 0 then "" else "1" end from TableName
字段:aa bb cc dd
数值:0 0 1.8 0
数值:2.2 0 4.6 3.9得到:
字段:aa bb cc dd
数值:'' '' 1.8 ''
数值:2.2 '' 4.6 3.9有劳楼上的大狭了。
如果你用的数据库是Oracle的话,会更简单一点,直接用函数 decode 就行了。
等于0的显示的还是0,和直接用SELECT AA,BB,CC,DD FROM TABLENAME得到的结果一样。
select case aa when 0 then "" else str(aa,2,1) end,case bb when 0 then "" else str(bb,2,1) end from TableName
str 函数的用法你知道吧,str(要转换的数字,转换后的总长度,转换后的小数位数),其中的长度和小数位数就看你怎么取舍了。
这个SQL语句看起来是挺不错的,可惜实际上它会把所有的记录都显示出来,与select * from TableName 没有什么差别。