繁体中文
设为首页
加入收藏
当前位置:技术首页 >> 数据库 >> Sql server >> 如何用SQL写出当M*N时的螺旋矩阵算法

如何用SQL写出当M*N时的螺旋矩阵算法

2008-04-07 23:14:06  作者:IT动力源  来源:IT动力源收集整理  浏览次数:0  文字大小:【】【】【

    算法问题:用SQL写出当M*N时的螺旋矩阵算法

  以下是一个4*4的矩阵:

  1 12 11 10

  2 13 16 9

  3 14 15 8

  4 5 6 7

  请照上面矩阵的规律, 用SQL写出当M*N时的矩阵算法。

  实现的sql与效果:  

  代码:---------------------------------------------

  SQL> -- 逆时针的

  SQL> select --i,

   2 sum(decode(j, 1, rn)) as co11,

   3 sum(decode(j, 2, rn)) as co12,

   4 sum(decode(j, 3, rn)) as co13,

   5 sum(decode(j, 4, rn)) as co14

   6 from (select i, j, rank() over(order by tag) as rn

   7 from (select i,

   8 j,

   9 -- 逆时针螺旋特征码 counter-clockwise

   10 case least(j - 1, 4 - i, 4 - j, i - 1)

   11 when j - 1 then

   12 (j - 1) || "1" || i

   13 when 4-i then

   14 (4 - i) || "2" || j

   15 when 4 - j then

   16 (4 - j) || "3" || (4 - i)

   17 when i - 1 then

   18 (i - 1) || "4" || (4 - j)

   19 end as tag

   20 from (select level as i from dual connect by level <= 4) a,

   21 (select level as j from dual connect by level <= 4) b))

   22 group by i

   23 /

   CO11 CO12 CO13 CO14

  ---------- ---------- ---------- ----------


点击收藏到

责任编辑:hefei

本文引用地址: http://tech.itzero.com/2008/0407/35188.html 请粘贴到你的QQ/MSN上推荐给你的好友

相关文章
Windows Server 2008曝设计安全缺陷
Windows Server 2008曝严重漏洞 影响Vista系统安全
设置sql server实现互联网数据库安全复制
在oracle中利用角色增强应用系统安全性
修改SQL Server 2000身份验证模式和系统管理员
sql server 7.0安全问题
sql server 7.0安全模式中最重要的改变
数据库快照,自定义函数与计算列的概念
讲解SQL Server 2005数据库的同义词Bug
实例讲解如何从结果集中获得随机结果
详细讲解大型数据库的设计原则与开发技巧
 

最新文章

更多

· 数据库快照,自定义函数与...
· 讲解SQL Server 2005数据...
· 实例讲解如何从结果集中...
· 详细讲解大型数据库的设...
· MS SQL Oracle MySQL查出...
· SQL Server 2000/2005下...
· 详细介绍分级汇总实现的...
· 如何用SQL写出当M*N时的...
· 在SQL Server中获得不包...
· SQL Server 2008关系数据...

热点文章

更多

· SQL2000里的数据类型
· SQL Server导出导入数据方法
· SQL SERVER日志清除的两...
· 实战MSSQL 2000数据库之...
· 向SQLServer数据库读写i...
· SQL转ACCESS解决自动编号...
· SQL Server数据库开发的...
· Asp备份与恢复SQL Server
· SQL Server快速参考
· ASP中调用存储过程、语法...

其它推荐