转自:http://www.cnblogs.com/zfanlong1314/archive/2013/01/14/2859848.html --> 测试数据 if not object_id('Tab') is null drop table Tab Go )) Insert Tab ,N'a,b,c' union all ,N'd,e' union all ,N'f' Go SQL2000用辅助表: if object_id('Tempdb..#Num') is not null drop…
查询同一个表中某一字段值相同的记录 select * from 表名 where 字段 in(select 字段 from 表名 group by 字段 having count(1)>1) select * from 表名 awhere exists (select 1 from 表名 where 字段=a.字段 and 主键<> a.主键) 用select top 查询出多条记录的解决 这个问题在开发的时候经常会遇到,比如 写了一句查询5条记录的语句 “SELECT top 5 *…
今天无意中碰到一个很简单的计算逻辑,但是用hive想了一大会才实现. 示例表数据: 需求逻辑: 给每条记录追加一个字段,用于统计按照p1和p2字段分组后,每个组中的num的数目(去重后的count). 示例结果: Mysql 超级简单的一句: select id, num, p1, p2, count(distinct num) over (PARTITION by p1,p2) as f from test_z; Hive里 会报distinct有问题,去掉的话,明显与要求逻辑不符合啊. 想了…
有如下数据表 需求就是将Col1,Col2按照特定的字符串分割成多行 一.利用XML解析方式 先将该字段值统一替换为逗号分割,再将逗号分割替换转为XML数据类型,再利用xml转为多个行 declare @table1 table ( ID int , Col1 ) , Col2 ) ); , 'a,b,c', '诶,必,塞,地,伊' ); , 'w', N'三四,不知道咧' ); --方式一 select a.ID, a.Col1, a.Col2, v1, v2 from ( select ID…
一.创建表 create table stuUnion ( sid int identity primary key, cid int, id ) ) 二.添加数据 insert into stuUnion ,'a' union ,'b' union ,'c' union ,'d' union ,'e' union ,'f' union ,'g' 三.用标量函数查询 ()创建标量函数 create function b(@cid int) ) as begin ) select @s=isnul…
XT_RSGL_KQSZ_LS表结构如下图: CREATE TABLE  XT_RSGL_KQSZ_LS( KQFW VARCHAR(400) ) 其中KQFW字段以分割符 , 隔开 INSERT INTO XT_RSGL_KQSZ_LS SELECT 'AAA,BBBB,C' UNION SELECT '12,3' 实现的结果为 (number为前分隔符的下标值的后一位) select substring(a.kqfw , b.number , charindex(',',a.kqfw+','…
我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机上的,操作系统为CentOs6.5. 我的数据表是这样的: CREATE TABLE `emp` ( `Id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL, `age` ) DEFAULT NULL, `cdate` timestamp NULL…
From: http://blog.chinaunix.net/uid-26729093-id-4294287.html 请参考:http://bbs.csdn.net/topics/330021260 create table t2 (    id int primary key,    gid    char,    col1    int,    col2    int) engine=myisam; insert into t2 values (1,'A',31,6),(2,'B',25…
先初始化一些数据,表名为 test ,字段及数据为: SQL执行结果为:每个 uid  都只有 3 条记录.   SQL语句为: SELECT   * FROM   test main WHERE   (SELECT COUNT(1)    FROM test sub    WHERE       main.uid = sub.uid      AND main.gid > sub.gid   ) < 3;…
Customer表A字段  varchar(50)     内容(客户姓名)B字段  varchar(1000)   内容(其他字符...客户姓名...其他字符)需要达到效果:将B字段中的客户姓名替换掉B字段内容替换成(其他字符......其他字符)如何将每个数据行内的B字段内所有符合A字段内容的文字部分替换成空隔或其他字符?UPDATE Customer SET B = replace(B, A, ''); Access语句:UPDATE Content SET v_cate_2 = repl…