判断条件的SQL 语句怎么写?

一个表A:
UserID UserName DepID
另外一个表B:
DepID DepName
------------------------------------------------
现在想做一个查询,查询的结果是这个样子:
UserID UserName 部门是否存在
--------------------------------------------------
条件:查询人员表A,人员表a里,有个字段DepID,如果人员的DepID能在B表里找到对应的记录,那么显示存在,否则,不存在。
请问这样的SQL怎么写?

1、首先我们打开SQL Server Management Studio管理工具,点击【新建查询】,新增一个书写sql语句的窗口。

2、在上一步打开的sql语句输入窗口,定义一个整数类型的变量,设置初始值等于10。

3、使用if条件语句,判断上面的临时变量是否等于10,如果等于就输出一行文字。

4、当上面的sql语句写完之后,点击顶部菜单的【执行】,就能运行当前窗口的sql语句了,此时可以看到下方输出了一行文字,刚好与if条件语句内部的内容一致,说明这个if条件判断成立。

5、这个时候就可以使用else语句。例如,判断变量是否等于5,不管是否等于都输出一句话。从运行结果可以看出,最终输出的是else下面的内容。

6、上面的sql语句,内容判断其实很简单,但是,语句看起来有点繁琐。那么,当if、else判断成立后,各自只有一条sql语句执行的时候,就可以省略begin-end。

7、如果条件判断不止两个结果,比如有三个结果,就可以使用[if]-[else if]-[else]的结构,假设还有4个结果,就在中间继续添加else if即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
SELECT A.UserID, A.UserName, CASE WHEN B.DepName IS NULL ‘不存在' ELSE '存在' END AS 部门是否存在 FROM A LEFT OUTER JOIN B ON A.DepID = B.DepID本回答被提问者采纳
第2个回答  2011-11-30
SELECT A.UserID, A.UserName, decode(b.deptid,null,'否','是')is_exist
FROM A LEFT OUTER JOIN B ON A.DepID = B.DepID
第3个回答  2011-11-30
SELECT A.UserID, A.UserName,
DECODE(NVL(B.DepID,0),0, ‘不存在', '存在' ) AS 部门是否存在
FROM A, B
WHERE A.DepID = B.DepID(+)
第4个回答  2011-11-30
select a.userid,a.username,b.depid from userinfo a left join dept b on a.depid=b.depid
查询出来根据b.depid是否为null来判断是否存在...
相似回答