问题:将以下字符串”.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谜题(加减符号替代)的更多相关文章

  1. 去除input[type=number]最右边的spinners(默认加减符号)

    // 去掉input[type=number]默认的加减号 input[type='number'] { -moz-appearance:textfield; } input[type=number] ...

  2. linux 加减符号

    [root@LocalWeb01 ~]# aa=11[root@LocalWeb01 ~]# bb=22[root@LocalWeb01 ~]# cc=$aa+$bb[root@LocalWeb01 ...

  3. sql时间加减

    /时间转成年月日时分秒select date_format(now(),'%Y%m%d%H%i%S')//时间转成年月日select date_format(now(),'%Y%m%d')//去年此时 ...

  4. java中可以对时间进行加减处理,有时候不用在sql语句中处理

    String ssny = (String) pd.get("ssny");   SimpleDateFormat simpleDateFormat=new SimpleDateF ...

  5. Sql里时间加减

    简单的时间加减 DATEADD(dd,-30, GETDATE())) 使用DateADD方法: 参数1:间隔,表示要添加的时间间隔,一天还是一月还是一年 参数2:要加或减的个数,加一年或加一月 参数 ...

  6. Oracle中的日期加减

    加法   select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate ...

  7. mysql日期加减

    mysql日期加减一.MySQL 为日期增加一个时间间隔:date_add().1.  示例:set @dt = now();select date_add(@dt, interval 1 day); ...

  8. Oracle 如何对时间进行简单加减运算

    在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm ...

  9. ORACLE日期加减【转】

    首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...

随机推荐

  1. c# c++ oc java || mac android ios

    Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台) http://blog.csdn.net/fg5823820/article/details/ ...

  2. Indesign中GREP的应用

    1.查找m2,m3中的2或3:代码:(?<=m|M)(2|3)(?!\d)(查找这个可以统一改成上标) 2.删除段首空格:代码:^\s+(?=\w{2,}) 3.删除尾随空白:代码:\s+$ 4 ...

  3. String StringBuffer StringBuilder

    package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...

  4. 【UWP】解析GB2312、GBK编码网页乱码问题

    在WebHttpRequest请求网页后,获取到的中文是乱码,类似这样: <title>˹ŵ��Ϸ���������� - ��̳������ -  ˹ŵ��Ϸ����</title ...

  5. Eclipse 中文的设置

    步骤如下:一.下载:在Eclipse官网下载相应版本的中文包. 二.中文包安装:1.解压中文语言包中的两个文件夹至Eclipse文件夹的dropins文件夹中.(目录不要放错)2.安装:方法一:使用命 ...

  6. 如何发布带静态资源的库——android 篇

    1.首先要使用 android sdk 提供的命令行工具处理已有的项目: cd YourProjectDir android update project -p ./ 2.上一步生成的 build.x ...

  7. ASP.NET 验证码控件

    public class ValidateCode : WebControl { /// <summary> /// 默认构造函数,暴露的属性接口 /// </summary> ...

  8. android-获得".apk"文件的相关信息。包名、版本号等等

    String filePath = "/sdcard/feijiedemo.apk"; PackageManager packageManager = getPackageMana ...

  9. 项目vue2.0仿外卖APP(六)

    goods 商品列表页开发 布局编写 除了商品之外还有购物车,还有个详情页,挺复杂的. 两栏布局:左侧固定宽度,右侧自适应,还是用flex. 因为内容可能会超过手机高度,超过就隐藏.左右两侧的内容是可 ...

  10. SDN/NFV运营商商业化部署

    三大运营商发布未来网络架构,并逐步加快SDN/NFV商业化部署的步伐.中国联通发布其新一代网络架构<CUBE-Net 2.0白皮书>,并与20多家合作伙伴共同启动了“新一代网络”合作研发计 ...