SQL谜题(加减符号替代)
问题:将以下字符串”.1.2.3.4.5.6.7.8.9 = 1“中的符号点(.)更改为符号加(+)或符号(-),有多少种方法?请用SQL解决此问题
计算过程: CREATE TABLE #(VAL INT)
INSERT INTO #
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 8 UNION ALL
SELECT 9
CREATE TABLE #1(VAL CHAR(1)) INSERT INTO #1
SELECT '+' UNION ALL
SELECT '-' ;
WITH A AS(
SELECT #1.VAL VAL1,#.VAL FROM # JOIN #1 ON 1=1) SELECT
RTRIM(A1.VAL1)+RTRIM(A1.VAL)+
RTRIM(A2.VAL1)+''+RTRIM(A2.VAL)+
RTRIM(A3.VAL1)+''+RTRIM(A3.VAL)+
RTRIM(A4.VAL1)+''+RTRIM(A4.VAL)+
RTRIM(A5.VAL1)+''+RTRIM(A5.VAL)+
RTRIM(A6.VAL1)+''+RTRIM(A6.VAL)+
RTRIM(A7.VAL1)+''+RTRIM(A7.VAL)+
RTRIM(A8.VAL1)+''+RTRIM(A8.VAL)+
RTRIM(A9.VAL1)+''+RTRIM(A9.VAL) Result
FROM A A1,A A2,A A3,A A4,A A5,A A6,A A7,A A8,A A9
WHERE A1.VAL=1 AND A2.VAL=2 AND A3.VAL=3 AND A4.VAL=4 AND A5.VAL=5 AND A6.VAL=6 AND A7.VAL=7 AND A8.VAL=8 AND A9.VAL=9
AND
CASE WHEN A1.VAL1='-' THEN -A1.VAL ELSE A1.VAL END+
CASE WHEN A2.VAL1='-' THEN -A2.VAL ELSE A2.VAL END+
CASE WHEN A3.VAL1='-' THEN -A3.VAL ELSE A3.VAL END+
CASE WHEN A4.VAL1='-' THEN -A4.VAL ELSE A4.VAL END+
CASE WHEN A5.VAL1='-' THEN -A5.VAL ELSE A5.VAL END+
CASE WHEN A6.VAL1='-' THEN -A6.VAL ELSE A6.VAL END+
CASE WHEN A7.VAL1='-' THEN -A7.VAL ELSE A7.VAL END+
CASE WHEN A8.VAL1='-' THEN -A8.VAL ELSE A8.VAL END+
CASE WHEN A9.VAL1='-' THEN -A9.VAL ELSE A9.VAL END=1
执行结果:

SQL谜题(加减符号替代)的更多相关文章
- 去除input[type=number]最右边的spinners(默认加减符号)
// 去掉input[type=number]默认的加减号 input[type='number'] { -moz-appearance:textfield; } input[type=number] ...
- linux 加减符号
[root@LocalWeb01 ~]# aa=11[root@LocalWeb01 ~]# bb=22[root@LocalWeb01 ~]# cc=$aa+$bb[root@LocalWeb01 ...
- sql时间加减
/时间转成年月日时分秒select date_format(now(),'%Y%m%d%H%i%S')//时间转成年月日select date_format(now(),'%Y%m%d')//去年此时 ...
- java中可以对时间进行加减处理,有时候不用在sql语句中处理
String ssny = (String) pd.get("ssny"); SimpleDateFormat simpleDateFormat=new SimpleDateF ...
- Sql里时间加减
简单的时间加减 DATEADD(dd,-30, GETDATE())) 使用DateADD方法: 参数1:间隔,表示要添加的时间间隔,一天还是一月还是一年 参数2:要加或减的个数,加一年或加一月 参数 ...
- Oracle中的日期加减
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate ...
- mysql日期加减
mysql日期加减一.MySQL 为日期增加一个时间间隔:date_add().1. 示例:set @dt = now();select date_add(@dt, interval 1 day); ...
- Oracle 如何对时间进行简单加减运算
在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm ...
- ORACLE日期加减【转】
首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...
随机推荐
- p/invoke碎片--对类的封送处理
主要是看默认封送处理行为 按类成员的类型是否为“可直接传递到非托管内存”的类型来分类;按照成员中是否有“可直接传递到非托管内存”的类型来讨论. 所有成员都是“可直接传递到非托管内存”的类型 托管代码和 ...
- 比特币_Bitcoin 简介
2008-11 Satoshi Nakamoto Bitcoin: A Peer-to-Peer Electronic Cash System http://p2pbucks.com/?p=99 ...
- spring拦截器排除 静态资源
拦截器需要排除静态资源,不然会造成资源浪费 <!-- 拦截器 --> <mvc:interceptors> <!-- 使用bean定义一个Interceptor,直接定义 ...
- Linux C 收藏
某招聘要求:熟悉高性能分布式网络服务端设计开发,熟悉epoll.多线程.异步IO.事件驱动等服务端技术: <UNIX环境高级编程(第3版)>apue.h等源码文件的编译安装 <UNI ...
- Mac Pro 日历增强工具 Itsycal
Mac 自带的日历工具一点也不好用,好在 Itsycal 弥补了这个缺陷,效果图如下: 下载地址:https://www.mowglii.com/itsycal/,下载解压后,把 Itsycal.ap ...
- Java读取word文件,字体,颜色
在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性.但由于需要,要把doc文档中的内容(字体,下 ...
- (转)实现DataList的分页 新增列
前几天在做网上商城,要展示商品信息(有图片,有文字),DataView虽然可以分页,但它的缺点是不能自定义显示格式.而DataList解决了它的缺点,但DataList本身却不能分页.很是头痛,于是在 ...
- ContextMenuStrip 类
表示快捷菜单 命名空间: System.Windows.Forms程序集: System.Windows.Forms(位于 System.Windows.Forms.dll) 继承层次结构 Sy ...
- Owin Self Host
http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可 ...
- Ternary Expression Parser
Given a string representing arbitrarily nested ternary expressions, calculate the result of the expr ...