[资料库] 学习笔记 - case when then 和 预存程序


前言

我是一名即将毕业的大学生,最近为了未来,正在与学长学习资料库!
虽然说起来好像只是为了能有份工作,但在最近的学习过程中,发现我其实还蛮喜欢写程序的/images/emoticon/emoticon42.gif
很後悔没能早一点努力,但幸好还是跨出了这一步,希望能够持续努力,永远保持热情!!


正文

未来会持续将学习到的知识整理到这发文,当成是学习的笔记
因为我是新手,所以如果有观念不正确的地方,还希望能麻烦各位高手指教/images/emoticon/emoticon41.gif


今天要解的问题

一张表有5个栏位,每个栏位类型都为int ,值都是0
https://ithelp.ithome.com.tw/upload/images/20201219/20133638Y1mc9PLQqA.png

有一个参数 @i
如果@i = 1 修改A栏位为1
如果@i = 2 修改B栏位为1
如果@i = 3 修改C栏位为1
如果@i = 4 修改D栏位为1
如果@i = 5 修改E栏位为1

我一开始解这题时,还差点要做一个网站什麽的来让适用者输入参数,然後用if一个一个判断XD
後来才知道原来可以用资料库的预存程序以及CASE WHEN来写,像这样:
https://ithelp.ithome.com.tw/upload/images/20201219/20133638r57fFrIU4u.png
会用ALTER是因为我改过很多次了XD

但是这样好像不够好,於是我又学习到可以加入动态查询的技巧来写
一开始的想法是这样:
https://ithelp.ithome.com.tw/upload/images/20201219/20133638cMFqR533QS.jpg
但这样写会跳出INT转换失败的讯息,苦恼了我很久

问了学长後才知道CASE WHEN可以用在变数上面,不用把动态加在CASE WHEN,所以最後改成:
https://ithelp.ithome.com.tw/upload/images/20201219/20133638DT6dRaqkKC.jpg

不知道各位高手是如何解这题的呢?
希望能够交流一下想法/images/emoticon/emoticon41.gif


<<:  Day49. 桥接模式

>>:  [资料库] 学习笔记 - case when then 和 预存程序 之2

[Golang] Introduction to Control Flow

If statement if (condition1) { } else if (conditio...

Git

最初,Linux Kernel 的社群采用压缩档或是补丁的方式进行维护工作。一直到 2002 年,开...

什麽是前端工程师?

Photo by Ferenc Almasi on Unsplash 文章同步发布於:https:...

Day 29:Google Map 自订资讯视窗

本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...

Day 26 密码规则定义规划实作

根据GDPR第5条和CCPA§§1798.83(d)(E)(iii) 和 §§1798.91.04(...