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
随机推荐
- dom4j操作xml对象
// 获取Documen对象 public static Document getDocument(String path) throws Exception{ ...
- ArcGIS10.2最新全套下载地址
http://www.tuicool.com/articles/VfaMfy 免责声明: 该链接来自于哥伦比亚大学或者牛津大学的网站链接, 下载 软件之前确保有正版的软件授权 ,本博客只是转载了网站链 ...
- EasyUI学习笔记
1,tabs获得被选中的标题 var tabTitle = $('#tabs').tabs('getSelected').panel('options').title;//获得被选中的标题 2.当设置 ...
- Oracle笔记 九、PL/SQL 游标的使用
--演示隐式游标,系统自动声明,自动打开,自动使用并且自动关闭 begin update emp set sal = 1000; dbms_output.put_line('影响的行数:' || sq ...
- 搭建Android手机系统开发环境(转)
Android作为近来表现十分强劲的手机操作系统,越来越受到开发人员的青睐,本篇文章将带领大家从零开始打造属于自己的开发环境. 一.JDK下载安装 JDK全称是Java Development Kit ...
- 移动端rem自适应布局关键代码
function resi() { var html = document.querySelector("html"); var wW = document.body.client ...
- 生成.a文件步骤
1.新建一个Project 选择 iOS->Framework & Library ->Cocoa Touch Static Library点击Next-> 输入Produc ...
- iptables用法
iptables -t nat -A PREROUTING -s 10.10.10.0/24 -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 ...
- Visual Studio 2010 更新NuGet Package Manager出错解决办法
在Visual Studio 2010的扩展管理器中发现NuGet Package Manger有最新版本更新提示,选择更新安装提示以下错误信息: 2013/4/25 1:11:48 - Micros ...
- SublimeText快捷键大全(附GIF演示图)
Sublime Text是码农必备之神器,有助于码农快速开垦,如果掌握了Sublime强大的快捷键就可以飞起来了.下面下载吧小编汇总了SublimeText支持的全部快捷键(适用SublimeText ...