ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4659|回复: 16

[原创] SQL练习-使用最短的SQL回答【开贴】

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-4-20 10:03 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wuxiang_123 于 2012-4-26 13:03 编辑

我的答案:

语句一:

  1. SELECT 部门,工号,姓名 FROM [数据$],[汇总$A1:A2] WHERE SWITCH(餐段='早餐',早餐,餐段='中餐',中餐,餐段='晚餐',晚餐,餐段='夜宵',夜宵,餐段='加特',加特)
复制代码
SWITCH:
SWITCH(表达式1,表达式1成立时的返回值,表达式2,表达式2成立时的返回值,……,表达式X,表达式X成立时的返回值)
SWITCH按从左到右顺序执行,但只要其中任意一个表达式错误,则会出错,如分母为0的表达式,此时不能执行SWITCH。如果所有表达式均不成立,则返回NULL,

如果返回值是字段表达式,则返回记录,但如果表达式放在条件子句中(如WHERE子句),则作为条件返回,如果表达式为逻辑表达式,则返回逻辑值(TRUE/FALSE、-1/0)。

WHERE SWITCH(餐段='早餐',早餐,餐段='中餐',中餐,餐段='晚餐',晚餐,餐段='夜宵',夜宵,餐段='加特',加特)意思是:如果餐段项是“早餐”,则返回WHERE 早餐条件,如果餐段项是“中餐”,则返回WHERE 中餐条件,其余表达式意义类推。
WHERE 字段的意思是返回字段不为0的记录,这个0可以是文本,可以是数值。需要注意的是,由于NULL表示未知值,所以,NULL不符号WHERE 字段的条件,因为NULL和0的比较是未知的,凡是和NULL进行的逻辑比较,其结果也是未知的。若然作为条件,则NULL必不被返回。
WHERE SWITCH(餐段='早餐',早餐,餐段='中餐',中餐,餐段='晚餐',晚餐,餐段='夜宵',夜宵,餐段='加特',加特)这个语句中,没有加' '的,均表示为字段,加' '的表示为文本常量。

语句二:

  1. SELECT 部门,工号,姓名 FROM [数据$],[汇总$A1:A2] WHERE CHOOSE(INSTR('早中晚夜加',LEFT(餐段,1)),早餐,中餐,晚餐,夜宵,加特)
复制代码
INSTR:
INSTR(被检索参数,需要检索参数,指定比较类型)
其中,指定比较类型是可省略的,INSTR('早中晚夜加',LEFT(餐段,1))的意思是,取餐段字段下得项的第一个字符串,检索其在【'早中晚夜加'】这个文本字符串中得位置。
CHOOSE:
CHOOSE(数值,数值为1时返回值,数值为2时返回值,……,数值X时返回值)
CHOOSE从1开始执行,和SWITCH一样,会计算所有列出的表达式,如果任意一个表达式出错,CHOOSE也会出错,不执行。
如果数值小于1或大于所列出的列数,则返回NULL。

SWITCH、INSTR和CHOOSE均可在ACCESS帮助中找到。

数据源:
数据源.png


要求和效果
要求和效果.png

最终效果如下图动画:
效果.gif

该贴已经同步到 wuxiang_123的微博


使用最短SQL语句回答.zip

29.65 KB, 下载次数: 144

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-4-20 10:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
完全不会sql呀,又想学,但是不知道怎么下手!看看高手解答!

TA的精华主题

TA的得分主题

发表于 2012-4-20 15:47 | 显示全部楼层
select 部门,工号,姓名 from 数据源 where 餐段=‘夜宵’order by 部门

点评

看清楚,餐段下有刷选项。  发表于 2012-4-20 15:59

TA的精华主题

TA的得分主题

发表于 2012-4-21 08:59 | 显示全部楼层

select 部门,工号,姓名 from 数据源 where 餐段 like '%[]%'order by 部门

点评

看清楚效果动画,呵呵,你还没有看懂题目意思.  发表于 2012-4-21 09:17

TA的精华主题

TA的得分主题

发表于 2012-4-21 09:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
向香帅学习

TA的精华主题

TA的得分主题

发表于 2012-4-21 09:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-4-21 09:46 | 显示全部楼层
吴教师:where后面的语句不懂是什么意思?具体用法如何?还有如果从页字段筛选后,不每次刷新,能不能自动根据筛选餐段的不同而刷新吗?

点评

用MQ  发表于 2012-4-21 09:56

TA的精华主题

TA的得分主题

发表于 2012-4-21 09:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-4-21 15:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
向干事学习{:soso_e130:}

TA的精华主题

TA的得分主题

发表于 2012-4-21 21:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
吴版主,能学习一下吗,谢谢你的原创
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 12:54 , Processed in 0.047679 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表