pc网站生成手机网站,黄石建设信息网站,北京网站优化策略,平面设计网页设计师招聘准备工作#xff08;建表、插入数据#xff09;
1、建立表格#xff1a;学生-学习科目表student_study 注意#xff1a;科目kemu列内容是字典码#xff0c;需要更换成对应内容。
CREATE TABLE TEST.STUDENT_STUDY
(
NAME VARCHAR(2…准备工作建表、插入数据
1、建立表格学生-学习科目表student_study 注意科目kemu列内容是字典码需要更换成对应内容。
CREATE TABLE TEST.STUDENT_STUDY
(
NAME VARCHAR(255),
KEMU VARCHAR(255)) STORAGE(ON MAIN, CLUSTERBTR) ;COMMENT ON COLUMN TEST.STUDENT_STUDY.NAME IS 姓名;
COMMENT ON COLUMN TEST.STUDENT_STUDY.KEMU IS 科目内容是字典码以英文逗号分隔;INSERT INTO TEST.STUDENT_STUDY VALUES(张三,1,2),(李四,1,3),(王五,1,2,3);2、建立表格编号-学科对应表格xueke 注意这张表是字典码编号和科目xueke的对应关系表。
CREATE TABLE TEST.XUEKE
(
BIANHAO VARCHAR(255),
XUEKE VARCHAR(255)) STORAGE(ON MAIN, CLUSTERBTR) ;COMMENT ON COLUMN TEST.XUEKE.BIANHAO IS 字典码编号;
COMMENT ON COLUMN TEST.XUEKE.XUEKE IS 学科名称;INSERT INTO TEST.XUEKE VALUES(1,数学),(2,语文),(3,英语);自定义存储函数
-- 所有函数及定义参考DM8_SQL语言使用手册、DM8_SQL程序设计在DM安装目录/doc/下
CREATE OR REPLACE FUNCTION get_code_meaning(codes IN VARCHAR(200)) RETURN VARCHAR(200)
AS
i INT DEFAULT 1;-- 或者 i INT : 1
max_i int;
code VARCHAR(100);
meaning varchar(100);
result_type varchar(200) DEFAULT ;
BEGINmax_i : LENGTH(codes) - LENGTH(REPLACE(codes, ,, )) 1; WHILE imax_i LOOP-- 取出每个元素以,进行分割code : SUBSTRING_INDEX(SUBSTRING_INDEX(codes, ,, i), ,, -1); -- 在这里查询代码表获取每个代码的含义并赋值给meaning变量-- 此处根据根据WHERE条件查询的结果必须是一行记录否则报错 多行记录需使用TOP 1或者LIMIT 1进行处理SELECT XUEKE INTO meaning FROM TEST.XUEKE WHERE BIANHAO code; IF result_type THENresult_type : CONCAT_WS(,,result_type,meaning);ELSEresult_type : meaning;END IF;i : i1;END LOOP;RETURN result_type;
END;查询出多个字典码对应的内容
SELECT NAME,KEMU,get_code_meaning(KEMU) FROM TEST.STUDENT_STUDY;替换多个字典码对应的内容
UPDATE TEST.STUDENT_STUDY SET KEMUget_code_meaning(KEMU);表里科目列字典项数据已经替换成对应内容 参考SQL Server更新某一列中多个字典码对应内容sql示例该博主给出的是SQL Server的方法因业务需求本人自行更改为DM数据库的可行方法。