SQL中的if...else的使用

1.oracle中if…else的方法:

第一种:写表达式
	SELECT
		CASE 
		 	WHEN 2>1 THEN '真'
			ELSE '假'
		END AS WE
	FROM DUAL
第二种:固定
	SELECT
		CASE 1
			WHEN 1 THEN '字段的值是1'
			WHEN 2 THEN '字段的值是2'
			ELSE '字段的值3'
		END AS WE
	FROM
		DUAL
第三种:DECODE(需要判断的值,判断1的结果条件(if),符合判断1的结果,判断2的结果条件(else if),符合判断2的结果,(else))
	SELECT
		DECODE(2, 1, '男', 2, '女', '未知')
	FROM
		DUAL
		
注意:NVL()是oracle数据库中对字段的非空校验,如果字段名为空,则赋值为逗号后面的值。

2.mysql中if…else的方法

第一种:
	SELECT
		IF(1>0, '真', '假')
	FROM
		DUAL
		
	也可以多条件嵌套用:
	SELECT
		IF(1>0, IF(2>1, '真', '假'), '假')
	FROM
		DUAL
第二种:
	SELECT
		CASE 1
			WHEN 1 THEN '字段的值是1'
			WHEN 2 THEN '字段的值是2'
			ELSE '字段的值3'
		END AS WE
	FROM
		DUAL
		
	也可以这样写:
	SELECT
		CASE 1
			WHEN 1 THEN '字段的值是1'
			WHEN 2 THEN '字段的值是2'
			ELSE '字段的值3'
		END AS WE
	FROM
		DUAL
	
注意:ifnull("字段名", 值) -- 非空验证 如果字段为空就输出后面的值

你可能感兴趣的:(SQL,mysql,oracle,数据库,sql)