SQL中一种类似GUID值的函数实现
开发中会需要用到多列值组合成一个ID值的情况。比如做数据清洗的时候,一张表A有五列,分别是医院、科室、医生、职称、电话。面有许多重复的数据需要和另一个表B(和A列相同)做对比。清洗需要做两件事:1、需要一个值来作为主键,方便后期的数据处理。2、需要对数据源进行去重操作。这里限制的条件是,需要一个主键但这个主键并且这个主键不能唯一标识一行数据(如果使用GUID的话就不能和另一张表做对比了),要标识同一类的数据(A和B的医院、科室、医生、职称、电话的列值都相同)才能进行去重,这时就需要用到多列值组合成一个ID值了。
当时想到了sql server 中有一个ASCII函数,用于获取字符的ASCII码,每个字符的ASCII都是不一样的所以可以作为这个字符的唯一标识,于是乎根据这个思路实现了生成类似GUID值的函数
代码如下:
上面的算法很简单,但是很好用。
调用GenUnique函数
查询的结果
总结
编程思想最重要,要灵活些,不要拘于一格
SQL中一种类似GUID值的函数实现的更多相关文章
- JavaScript中两种类型的全局对象/函数【转】
Snandy Stop, thinking is the essence of progress. JavaScript中两种类型的全局对象/函数 这里所说的JavaScript指浏览器环境中的包括宿 ...
- JavaScript 在函数中使用Ajax获取的值作为函数的返回值
解决:JavaScript 在函数中使用Ajax获取的值作为函数的返回值,结果无法获取到返回值 原因:ajax默认使用异步方式,要将异步改为同步方式 案例:通过区域ID,获取该区域下所有的学校 var ...
- SQL中AVG()、COUNT()、SUM()等函数对NULL值处理
一.AVG() 求平均值 注意AVE()忽略NULL值,而不是将其作为“0”参与计算 二.COUNT() 两种用法 1.COUNT(*) 对表中行数进行计数 不管是否有NULL 2.COUNT(字段名 ...
- JavaScript中两种类型的全局对象/函数
这里所说的JavaScript指浏览器环境中的包括宿主环境在内的. 第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScri ...
- SQL Server中字符串转化为GUID的标量函数实现
还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...
- sql中查询同一列所有值出现的次数
尊重原创:http://blog.csdn.net/love_java_cc/article/details/52234889 有表如下table3: 需要查询country中各个国家出现的次数 SQ ...
- sql中常用到的GUID
在项目的数据库中经常见到如下所示的列: 列名:**_id 数据类型:UNIQUEIDENTIFIER 默认:NEWID() ROWGUIDCOL 属性. 其实这样的列通常为表的主键,函数NEWID() ...
- SQL中两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...
- 动态sql中的条件判断取值来源于map 或者 model
随机推荐
- 对付ring0 inline hook
对付ring0 inline hook的基本思路是这样的,自己写一个替换的内核函数,以NtOpenProcess为例,就是MyNtOpenProcess.然后修改SSDT表,让系统服务进入自己的函数M ...
- eclipse中logcat偶尔不显示log的问题解决办法
Android开发过程中 eclipse 经常会出现 logcat突然就是不现实log的情况.经常遇到,一直没有解决.后来解决了,记录一下. 默认的设置是error 改成verbos 问题解决.
- iptable nat网关
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.1.0/ ...
- hadoop-集群管理(2)——内存设置
http://www.cnblogs.com/yuechaotian/archive/2013/03/08/2949607.html 1. 内存 hadoop为各个守护进程(namenode,seco ...
- 必须会的SQL语句(五)NULL数据处理和类型转换
1.Null数据的处理 1)检索出null值 select * from 表 where xx is null 2)null值替换 sele ...
- linux安装ftp服务器
Ftp(文件传输协议) 概念 FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用 ...
- webserver 发布问题
1:web.config <system.web> <compilation debug="true" targetFramework="4. ...
- Cassandra 计数器counter类型和它的限制
文档基础 Cassandra 2.* CQL3.1 翻译多数来自这个文档 更新于2015年9月7日,最后有参考资料 作为Cassandra的一种类型之一,Counter类型算是限制最多的一个.Coun ...
- MongoDB数据库的主从配对与迁移示例
数据中心在运行中有可能遇到各种硬件.电力.网络故障等问题,需要设计良好的系统来隔离,尽量减少对上层应用的影响,持续对外提供服务:一旦发生业务中断,也应尽快恢复.通过主从备份设计,在主应用系统发生故障时 ...
- php 购物车的例子
网上搜到的,简单容易理解.cookie存购物车ID,db存购物车数据. //购物车session的产生代码 1 if(! $session && ! $scid) { 2 / ...