您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么此SQL存储过程需要创建一个临时表才能使其正常工作(返回结果)?

为什么此SQL存储过程需要创建一个临时表才能使其正常工作(返回结果)?

您想说的是:

CREATE PROCEDURE build_jics_user (pid INT)
    RETURNING CHAR(8);
    DEFINE username CHAR(8);
    SELECT LOWER((SUBSTR(firstname,0,1))||(SUBSTR(lastname,0,7))) INTO username
      FROM id_rec
      WHERE id = pid;
    RETURN username;
END PROCEDURE;

…并像这样执行它:

EXECUTE PROCEDURE build_jics_user(42);

如果此操作的目的是成为一个函数(在其他一些sql中需要此函数),则可以执行以下操作:

CREATE FUNCTION jics_user(fname VARCHAR(255), lname VARCHAR(255))
    RETURNING CHAR(8);
    RETURN LOWER(SUBSTR(fname,0,1) || SUBSTR(lname,0,7));
END FUNCTION;

…并像这样执行它:

SELECT id, firstname, lastname, jics_user(firstname, lastname) AS jics_user, ...
  FROM id_rec;

PROCEDURE和FUNCTION之间没有真正的技术区别,更多地是关于如何使用它的断言。

SQLServer 2022/1/1 18:38:36 有559人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶