是否可以不用存储过程实现根据条件执行不同SQL

从苏打绿到李志 2020-08-03 05:03:20
需求:根据某表是否为空,决定执行不同SQL语句
是否可以不用存储过程直接用sql实现?
...全文
249 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2020-08-05
  • 打赏
  • 举报
回复
帮您移到 pg sql 版块了。
trainee 2020-08-05
  • 打赏
  • 举报
回复
你这个需要用到函数(存储过程)啊,单条语句不行
  • 打赏
  • 举报
回复
引用 6 楼 二月十六 的回复:
楼主的思路没问题,就是写法有一些问题
IF
(
    SELECT COUNT(*) FROM t1
) = 0
BEGIN
    SELECT COUNT(*)
    FROM t1;
END;

ELSE
BEGIN
    SELECT COUNT(*)
    FROM t2;
END;
这样写语法错误,我用的pgsql
二月十六 2020-08-04
  • 打赏
  • 举报
回复
楼主的思路没问题,就是写法有一些问题
IF
(
    SELECT COUNT(*) FROM t1
) = 0
BEGIN
    SELECT COUNT(*)
    FROM t1;
END;

ELSE
BEGIN
    SELECT COUNT(*)
    FROM t2;
END;
qq_25073223 2020-08-03
  • 打赏
  • 举报
回复




declare @a int 
set @a =1 

if @a = 1 
begin
select 'a'
end


if @a =2 
begin
select 'b'
end
这样可以吗?
  • 打赏
  • 举报
回复

SELECT IIF(COUNT(*)=0,(SELECT COUNT(*) FROM t1),(SELECT COUNT(*) FROM t2)) FROM t1

SELECT (CASE WHEN COUNT(*)=0 THEN COUNT(*) ELSE (SELECT COUNT(*) FROM t2) END) Count FROM t1
  • 打赏
  • 举报
回复
我的思路是直接用if..else..
BEGIN
	IF (SELECT count(*) FROM t1) = 0
	THEN SELECT count(*) FROM t1;
	ELSE SELECT count(*) FROM t2;
	END IF;
END;
执行报错,IF语法错误。求解

954

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧