Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何在查询中使用IF判断语句?

chenhuaying  发表于:2013-02-21 16:44:57  
复制

EXT  SIZE LONG ASS EXTL SIZE WIDE ASS EXT SIZE HIGH ASS EXT  SIZE LONG KD EXTL SIZE WIDE KD EXT SIZE HIGH KD EXT  SIZE LONG EXTL SIZE WIDE EXT SIZE HIGHT
70 70 166 0 0 0 70 70 166

当 EXT SIZE LONG KD=0时,EXT SIZE LONG 的值 取 EXT  SIZE LONG ASS,否则 EXT  SIZE LONG 的值 取 EXT  SIZE LONG KD.

请问如何在查询视图里中操作?

 

Top
蒋元根 发表于:2013-02-21 17:30:10

供参考:

SELECT 表1.编号, 表1.[EXT  SIZE LONG ASS], 表1.[EXTL SIZE WIDE ASS], 表1.[EXT SIZE HIGH ASS], 表1.[EXT  SIZE LONG KD], 表1.[EXTL SIZE WIDE KD], 表1.[EXT SIZE HIGH KD], 表1.[EXT  SIZE LONG], 表1.[EXTL SIZE WIDE], 表1.[EXT SIZE HIGHT], IIf(表1.[EXT SIZE HIGH KD]=0,表1.[EXT  SIZE LONG ASS],表1.[EXT  SIZE LONG KD]) AS [EXT SIZE LONG 1]
FROM 表1;
�������ش˸���

 



chenhuaying 发表于:2013-02-22 10:20:21

首先感谢蒋同志的帮助。

根据测试后有几个问题:

1.表1.编号感觉很多余,没有什么用;

2.太长了,可以缩减很多。

SELECT表1.[EXT  SIZE LONG ASS], 表1.[EXT  SIZE LONG KD], 表1.[EXT  SIZE LONG], IIf(表1.[EXT SIZE HIGH KD]=0,表1.[EXT  SIZE LONG ASS],表1.[EXT  SIZE LONG KD]) AS [EXT SIZE LONG 1]
FROM 表1;

3.这个语句第一个判断返回值可以实现:即当当 EXT SIZE LONG KD=0时,EXT SIZE LONG 的值 取 EXT  SIZE LONG ASS;但是第二个则没有效。

请问可以帮我看一下吗?



chenhuaying 发表于:2013-02-22 10:27:29

图示:

1:第一个已可以正常得出结果

PRODUCTS

EXT SIZE LONG ASS EXT SIZE LONG KD EXT SIZE LONG
77 0 77

2.当KD不等于0时,结果依然是EXT SIZE LONG ASS 值

PRODUCTS

EXT SIZE LONG ASS EXT SIZE LONG KD EXT SIZE LONG
77 89 77

请帮忙看一看,谢谢!



殷小宝 发表于:2013-02-22 12:40:27
是空格惹的祸,建议作者所有字段仅保留一个空格。表1.[EXT SIZE HIGH KD]=0,表中此值已经等于0,结果只有一种,是上图显示的那种,没有第二种。如果作者输入第二条记录时就会有表1.[EXT SIZE HIGH KD]<>0的情况,才能等于表1.[EXT  SIZE LONG KD].

殷小宝 发表于:2013-02-22 12:42:04
字段的单词间隔保留一个空格,特此更正.

chenhuaying 发表于:2013-02-22 14:39:50
今天看了很多帖子,感谢大家的支持,其实我一直都在想一个问题,为什么电子表格的函数如此简单,ACCESS为什么那么繁琐呢。刚才测试中,我将查询的字段缩减为只有返回值的EXT SIZE LONG后,所有的判断都正确了。
正确的语句为:
SELECT IIf(表1.[EXT SIZE LONG KD]=0,表1.[EXT SIZE LONG ASS],表1.[EXT SIZE LONG KD]) AS [EXT SIZE LONG]
FROM 表1;


总记录:6篇  页次:1/1 9 1 :