首页 新闻 会员 周边 捐助

SQL类显示问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-02-06 14:35

假如我通过查询的得到一个字段ID的值有a,b,c,d四种

我想在显示的时候只让a显示为‘空’,其他三种值原样显示能否实现

 

另外一个问题,假如我一个表T中有A,B,C,D四个字段,当我查询时假如A有变动(例如在Select中用了case,When什么的),这时其他列只能一个一个写出来吗?

emsui的主页 emsui | 初学一级 | 园豆:77
提问于:2015-02-05 17:54
< >
分享
最佳答案
0

对于问题一:就是有case when 做一次排除,楼上的语句即可。

 

对于问题二:感觉你貌似是想问用了case then之后,还能不能直接用select *,如果是这个问题,那么是能用*的,但是如果你不对使用了case when的A设置别名的话,就会出现两个A列。。。否则,只能一个一个将B、C、D写出来。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2015-02-06 09:04

对对,就是会出现重名,可能会有两个A列,这咋办,有木有除掉A列的表示其他所有列的方法,除了一个个列出来

emsui | 园豆:77 (初学一级) | 2015-02-06 14:07

@伊夏: 楼下也说了,将处理过的A列进行别名化,然后用*多查一个字字段。否则,别无他法。。

 

额,还是有办法的。利用sys.tables和sys.columns来构建字段,然后用exec(sqlCommand)来执行动态sql。。。话说,这更复杂了 。

幻天芒 | 园豆:37207 (高人七级) | 2015-02-06 14:28

@幻天芒: 哇,虽然听不懂但好厉害的样子,看来确实只能一个个写了,在别处也都是这么说,不过还是谢了!

emsui | 园豆:77 (初学一级) | 2015-02-06 14:34
其他回答(2)
0

问题1:SELECT CASE WHEN ID='a' THEN '空' ELSE ID END AS ID FROM T,如果你的空是'',在SQL Server中也可以用COALESCE函数

问题2:有点不清楚你到底想表达什么意思。如果是通过CASE WHEN做判断写一些逻辑,通常是省不掉各种情况都判断一下的

收获园豆:5
JeffWong | 园豆:2328 (老鸟四级) | 2015-02-05 18:12
0

1、楼上答了基本够了。

2、你就是想偷个懒不写字段名是吧?可以用类似这样的

Select case when A='a' then '' else A END as OtherA, * from table,

只是这样就有5个字段,而不是4个字段了。

然后在前台自己处理。

但是如果只为了省事而用Select * from Table,这本身就是不太推荐的做法。

收获园豆:5
爱编程的大叔 | 园豆:30844 (高人七级) | 2015-02-06 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册