开发中会需要用到多列值组合成一个ID值的情况。比如做数据清洗的时候,一张表A有五列,分别是医院、科室、医生、职称、电话。面有许多重复的数据需要和另一个表B(和A列相同)做对比。清洗需要做两件事:1、需要一个值来作为主键,方便后期的数据处理。2、需要对数据源进行去重操作。这里限制的条件是,需要一个主键但这个主键并且这个主键不能唯一标识一行数据(如果使用GUID的话就不能和另一张表做对比了),要标识同一类的数据(A和B的医院、科室、医生、职称、电话的列值都相同)才能进行去重,这时就需要用到多列值组合成一个ID值了。

    当时想到了sql server 中有一个ASCII函数,用于获取字符的ASCII码,每个字符的ASCII都是不一样的所以可以作为这个字符的唯一标识,于是乎根据这个思路实现了生成类似GUID值的函数

    代码如下:

上面的算法很简单,但是很好用。
调用GenUnique函数

查询的结果

总结
编程思想最重要,要灵活些,不要拘于一格

SQL中一种类似GUID值的函数实现的更多相关文章

  1. JavaScript中两种类型的全局对象/函数【转】

    Snandy Stop, thinking is the essence of progress. JavaScript中两种类型的全局对象/函数 这里所说的JavaScript指浏览器环境中的包括宿 ...

  2. JavaScript 在函数中使用Ajax获取的值作为函数的返回值

    解决:JavaScript 在函数中使用Ajax获取的值作为函数的返回值,结果无法获取到返回值 原因:ajax默认使用异步方式,要将异步改为同步方式 案例:通过区域ID,获取该区域下所有的学校 var ...

  3. SQL中AVG()、COUNT()、SUM()等函数对NULL值处理

    一.AVG() 求平均值 注意AVE()忽略NULL值,而不是将其作为“0”参与计算 二.COUNT() 两种用法 1.COUNT(*) 对表中行数进行计数 不管是否有NULL 2.COUNT(字段名 ...

  4. JavaScript中两种类型的全局对象/函数

    这里所说的JavaScript指浏览器环境中的包括宿主环境在内的. 第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScri ...

  5. SQL Server中字符串转化为GUID的标量函数实现

        还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...

  6. sql中查询同一列所有值出现的次数

    尊重原创:http://blog.csdn.net/love_java_cc/article/details/52234889 有表如下table3: 需要查询country中各个国家出现的次数 SQ ...

  7. sql中常用到的GUID

    在项目的数据库中经常见到如下所示的列: 列名:**_id 数据类型:UNIQUEIDENTIFIER 默认:NEWID() ROWGUIDCOL 属性. 其实这样的列通常为表的主键,函数NEWID() ...

  8. SQL中两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  9. 动态sql中的条件判断取值来源于map 或者 model

随机推荐

  1. ajax和servlet交互

    网上有比较多的教程来将如何实现ajax与servlet的交互了,这里和这里的教程可以参考参考,在此处我只简单说明一下,并记录一下我这次遇到的问题. 整个思路是:写个js函数,在里面使用XHR(ajax ...

  2. ajax contenttype

    jquery ajax基本形式: $.ajax({ type: 'POST/get', url: '', data: {"n":n,"m":m}, dataTy ...

  3. 【MySQL】binlog_format以及binlog事务记录分析

    MySQL官方对于binlog_format参数的说明: http://dev.mysql.com/doc/refman/5.5/en/binary-log-setting.html binlog_f ...

  4. 用户 'IIS APPPOOL\Classic .NET AppPool' 登录失败。

    “用户 'IIS APPPOOL/Classic .NET AppPool' 登录失败”的解决方法   错误: “/”应用程序中的服务器错误. 用户 'IIS APPPOOL\Classic .NET ...

  5. linux mysql开启远程链接

    x:\>mysql -u root -pvmware mysql> use mysql; mysql> update user set host = ‘%’ where user = ...

  6. 淮安团购网美团联盟网赚版 v5.7

    淮安团购网,主要是利用美团联盟的hao123版API大家可以注册http://union.meituan.com获取api 核心采用dede5.7所以在安装上没有大的问题,安装好后后台恢复备份就可以了 ...

  7. Linux Direct 文件读写(文件DIO)

    有时候,读写文件并不想要使用系统缓存(page cache),此时 direct 文件读写就派上了用场,使用方法: (1)打开文件时,添加O_DIRECT参数: 需要定义_GNU_SOURCE,否则找 ...

  8. nth-of-type和nth-child的区别

    看CSS3时发现了一个nth-of-type选择器,发现平时基本没见过用,就研究了一下,w3c是这样说明的: :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素 ...

  9. ASP.NET页面生存周期

    .Net的Page请求过程:

  10. php循环创建目录

    代码取自thinkphp中: function mk_dir($dir, $mod = 0777) { if(!is_dir($dir) || mkdir($dir, $mod)) { if(!mk_ ...