学习sql中的排列组合,在园子里搜着看于是。。。
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来:
--需求--
--B, C, F, M and S住在一座房子的不同楼层。
--B 不住顶层。C 不住底层。
--F 既不住顶层也不住底层。M 住得比 C 高。
--S 住的楼层和 F 不相邻。
--F 住的楼层和 C 不相邻。
create table pailie
(rnam varchar(20) )
select 'B' as rnam into #y
union
select 'C'
union
select 'F'
union
select 'M'
union
select 'S'
insert into pailie
select ALL B.rnam+C.rnam+F.rnam+M.rnam+S.rnam from #y B,#y C,#y F,#y M,#y S
delete from pailie
where rnam like
'%BB%' or rnam like '%B%B' or rnam like '%B%B%' or rnam like 'B%B%' or rnam like 'BB%' or rnam like '%BB' or rnam like 'B%B' or rnam like
'%CC%' or rnam like '%C%C' or rnam like '%C%C%' or rnam like 'C%C%' or rnam like 'CC%' or rnam like '%CC' or rnam like 'C%C' or rnam like
'%FF%' or rnam like '%F%F' or rnam like '%F%F%' or rnam like 'F%F%' or rnam like 'FF%' or rnam like '%FF' or rnam like 'F%F' or rnam like
'%MM%' or rnam like '%M%M' or rnam like '%M%M%' or rnam like 'M%M%' or rnam like 'MM%' or rnam like '%MM' or rnam like 'M%M' or rnam like
'%SS%' or rnam like '%S%S' or rnam like '%S%S%' or rnam like 'S%S%' or rnam like 'SS%' or rnam like '%SS' or rnam like 'S%S'
--删掉所有重复的(一个人不能住两层),列出所有的排列
delete from pailie
where rnam like 'B%' or rnam like '%C'
--B 不住顶层。C 不住底层。
delete from pailie
where rnam like 'F%' or rnam like '%F'
or rnam like '%CM%' or rnam like '%C%M' or rnam like '%C%M%' or rnam like 'C%M%' or rnam like 'CM%' or rnam like '%CM' or rnam like 'C%M'
--F 既不住顶层也不住底层。M 住得比 C 高。
delete from pailie
where rnam like 'SF%' or rnam like '%SF%' or rnam like '%SF'
or rnam like 'FS%' or rnam like '%FS%' or rnam like '%FS'
--S 住的楼层和 F 不相邻。
delete from pailie
where rnam like 'CF%' or rnam like '%CF%' or rnam like '%CF'
or rnam like 'FC%' or rnam like '%FC%' or rnam like '%FC'
--F 住的楼层和 C 不相邻。
结果:

由高到低的楼层!
(原文:http://www.cnblogs.com/boss-he/p/4628305.html#commentform)
(学习的知识笔记:CAST 和 CONVERT;WITH...AS();union all;@表变量;charindex )
学习sql中的排列组合,在园子里搜着看于是。。。的更多相关文章
- java中的排列组合
使用之前需要声明一个Combine的对象,调用startCombile方法,可返回想要的组合数或者个数,参数介绍很重要 public class Combine { private Object[] ...
- SQL中随机数函数rand()简介
转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手, ...
- SQL中DATENAME函数的用法
在SQL数据库中有多种函数,下面就将为您介绍其中的DATENAME函数的用法,供您参考,希望对您学习SQL中函数的用法能有所帮助. 在SQL数据库中,DATENAME函数的作用是是从日期中提取指定部分 ...
- sql中多层循环示例(有游标)
在需求处理中,我们会遇到需要通过SQL多层循环来处理的问题.如:A表中有8条数据,B表中有10条数据,需要实现A表中的每1条数据对应B表中的10条数据,最后就有了80条数据,从而实现一对多的关系.那如 ...
- B - 来找一找吧 HihoCoder - 1701(排列组合 + 同余差值相同)
这次到渣渣问桶桶了... 准备给你n个数a1, a2, ... an,桶桶你能从中找出m个特别的整数吗,我想让任意两个之差都是k的倍数. 请你计算有多少种不同的选法.由于选法可能非常多,你只需要输出对 ...
- CodeForces - 817B(分类讨论 + 排列组合)
题目链接 思路如下 这一题是:最菜的队伍只有三个人组成,我们只需对排序后的数组的 前三个元素进行分类讨论即可: a[3] != a[2] && a[3] != ar[1] a[3] = ...
- iOS多线程中,队列和执行的排列组合结果分析
本文是对以往学习的多线程中知识点的一个整理. 多线程中的队列有:串行队列,并发队列,全局队列,主队列. 执行的方法有:同步执行和异步执行.那么两两一组合会有哪些注意事项呢? 如果不是在董铂然博客园看到 ...
- PHP的排列组合问题 分别从每一个集合中取出一个元素进行组合,问有多少种组合?
首先说明这是一个数学的排列组合问题C(m,n) = m!/(n!*(m-n)!) 比如:有集合('粉色','红色','蓝色','黑色'),('38码','39码','40码'),('大号','中号') ...
- N个数组中所有元素的排列组合(笛卡尔积)算法
(1)N个数组对象中所有元素排列组合算法 private List<List<Object>> combineAlg(List<Object[]> nArray) ...
随机推荐
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
Oracle SQL Developer中SQL语句格式化快捷键: 每次sql复制到SQL Developer面板的时候,格式老不对,而且看起来很不舒服,所有的sql都挤在一行完成. 这时我们可以全选 ...
- python 三元运算
C:\Users\Administrator>pythonPython 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.190 ...
- Android 浏览器 —— 使用 WebView 实现文件下载
对当前的WebView设置下载监听 mCurrentWebView.setDownloadListener(new DownloadListener() { @Override public void ...
- android笔记:获取View组件宽度以及ViewTreeObserver
View宽高测量方法: 测量方法有三种,如下: 1)(直接在onCreate()执行) int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureS ...
- SQL Server-聚焦过滤索引提高查询性能(十)
前言 这一节我们还是继续讲讲索引知识,前面我们讲了聚集索引.非聚集索引以及覆盖索引等,在这其中还有一个过滤索引,通过索引过滤我们也能提高查询性能,简短的内容,深入的理解,Always to revie ...
- 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器
MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...
- CentOS7安装iptables防火墙
CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...
- java代码的初始化过程研究
刚刚在ITeye上看到一篇关于java代码初始化的文章,看到代码我试着推理了下结果,虽然是大学时代学的知识了,没想到还能做对.(看来自己大学时掌握的基础还算不错,(*^__^*) 嘻嘻……)但 ...
- spring整合mybatis使用<context:property-placeholder>时的坑
背景 最近项目要上线,需要开发一个数据迁移程序.程序的主要功能就是将一个数据库里的数据,查询出来经过一系列处理后导入另一个数据库.考虑到开发的方便快捷.自然想到用spring和mybatis整合一下. ...
- nginx简易教程
概述 什么是nginx? Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse Pr ...