REF_VALUES是数据库表,ID是主键,ORIGINAL_VALUE是源列,将ORIGINAL_VALUE打乱次序后要更新到空列SHUFFLED_VALUE。部分数据如下:
SQL:
不同的数据库写法不同,以Oracle为例:
create or replace procedure shuffle as TYPE My_CurType IS REF CURSOR; CUR_1 My_CurType; V_id NUMBER(10,0); V_result varchar2(20); v_sql varchar2(2000); begin OPEN CUR_1 FOR select t1.id,t2.result from ( select rownum rn,id,ORIGINAL_VALUE from REF_VALUES order by ORIGINAL_VALUE) t1 join( select rownum rn,result from( select ORIGINAL_VALUE result from REF_VALUES order by dbms_random.value()))t2 on t2.rn=t1.rn; LOOP fetch CUR_1 INTO V_id,V_result ; EXIT WHEN CUR_1%NOTFOUND; v_sql:='update REF_VALUES set SHUFFLED_VALUE='''||V_result||''' where id='||V_id; EXECUTE immediate v_sql; END LOOP; CLOSE CUR_1; end shuffle;
计算出打乱次序的结果就需要多层嵌套子查询(前半部分),要再更新到表中还需要用游标(或者用临时表)及存储过程,整个代码非常繁琐。
使用集算器可以避免复杂的嵌套子查询,且可通用于各种数据库,代码如下:
A1:执行SQL,取得列id、ORIGINAL_VALUE。
A2:打乱A1的次序。
A3:将A1中的id列和A2中的ORIGINAL列拼成一个二维表。计算结果如下:
A4:用A3更新表REF_VALUES。选项@u表示只生成更新语句。更新后REF_VALUES如下:
相关推荐
sqlserver 动态行专列 避免了数据列过多的时候大量的使用case when then...... 原数据 : UserName Subject Score Nick 语文 80 Nick 数学 90 Nick 英语 70 Nick 生物 85 Kent 语文 80 Kent 数学 90 Kent ...
将SQL数据库的一列多行 数据转换为 一行多列
sqlserver 行数据转成列数据,#temp1为数据表,#temp2为辅助表,具体场景可微调替换。
sql语句将行转换成列 declare @sql varchar(8000) set @sql = 'select 物料代码' select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+'''...
sql语言让数据行变列显示,简单的sql语句就能实现
sqlserver 创建自动增长列的方法,返回最后插入记录的自动编号
SQL实现两张无关联表的数据列合并在一张结果集中实现思路。
SQL Server 将某一列的值拼接成字符串示例
用一条SQL语句将数据表中某列更新到另一个数据表里
SQL Compare(SQL数据对比工具)
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
数据库 计算单条 数据大小 只需执行该sql 即可知道单条数据大小
进一步地讲,规范化的含义就是:你不能在数据库中保存计算后的值,而你只能在需要的时候临时计算数据库中保存的值。对数据进行某些分析通常是很重要的。比方说,你或许想知道哪些产品的定单最多或者哪些定单的利润...
海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化...
C# 用SQL自动记录数据并且查询出某一列有哪些重复数据,本人实际测试能用,欢迎下载使用!
本文介绍了在SQL Server计算列和平均值的方法。
SQLServer-让标识列重新开始计算!
SQL行转列问题,有实例,根据具体实例讲解,清晰易懂。 希望对你有帮助!
里面是sql语句,按需求修改一下可以对列数不固定的数据查询
sql 多行合并某一列字符串拼接的示例语句