‘壹’ sql中如何取得一个按奇数偶数排列,用游标
虽然不是十分明白你想问什么,但是应该没那么复杂,不需要游标,两次order by 即可。
第一次order by 按照先奇后偶排列,第二次在 奇偶内部 按照从小到大排列。
select*fromA_14073003
idi
5A59C239-34A5-4DC4-BB9E-84E618F205571
A2C647AB-EBC6-437A-B20B-B601ED32E6A62
3DE360FD-6380-4661-A0BB-A983C43C5DB83
FBC0A6F5-2DD9-47C9-93FB-0662B03CE8204
E5219DBF-F00A-427A-A0A8-7A5631EF55715
BE079BED-A9A5-461F-9D73-2AB884D909886
A150A811-556F-4E72-B1C0-EFEF2FDE4A627
C41CAEB4-6B72-4DD7-BC4C-ED74F17741818
9A439763-9D99-427D-9D9D-16459C20FE959
94B429B5-633F-4684-B003-7C6AC4DFBBD010
select*fromA_14073003orderby(i%2)desc,iasc
idi
5A59C239-34A5-4DC4-BB9E-84E618F205571
3DE360FD-6380-4661-A0BB-A983C43C5DB83
E5219DBF-F00A-427A-A0A8-7A5631EF55715
A150A811-556F-4E72-B1C0-EFEF2FDE4A627
9A439763-9D99-427D-9D9D-16459C20FE959
A2C647AB-EBC6-437A-B20B-B601ED32E6A62
FBC0A6F5-2DD9-47C9-93FB-0662B03CE8204
BE079BED-A9A5-461F-9D73-2AB884D909886
C41CAEB4-6B72-4DD7-BC4C-ED74F17741818
94B429B5-633F-4684-B003-7C6AC4DFBBD010
‘贰’ sql 给定一个序列号,可能不连续,将他们分成奇数偶数2列
#include<iostream>
#include<string.h>
usingnamespacestd;
intmain(){
charx[200]={0},y[100]={0},z[100]={0};
cout<<"请输入一个字符串:";
cin>>x;
for(inti=0;i<strlen(x);i++)
{
if(i%2==0)
y[i/2]=x[i];
else
z[i/2]=x[i];
}
cout<<"拆分后:"<<y<<","<<z<<endl;
return0;
}
请输入一个字符串:12313
拆分后:133 ,21
‘叁’ SQL(SQL server 2008)实现插入奇数和偶数
--测试环境MSSQL2008
--查询
;
WithT
As
(
Select1Asa,2Asb
Unionall
Selecta+2,b+2FromtWherea<10000
)
Select*FromT
Option(MAXRECURSION32767)
--一次插入6万以内的(如果表不存在)
;
WithT
As
(
Select1Asa,2Asb
Unionall
Selecta+2,b+2FromtWherea<10000
)
Selectaas奇数,bas偶数into表FromT
Option(MAXRECURSION32767)
--一次插入6万以内的(如果表已存在)
;
WithT
As
(
Select1Asa,2Asb
Unionall
Selecta+2,b+2FromtWherea<10000
)
InsertInto表
Select*FromT
Option(MAXRECURSION32767)
--一次插入4096以内的,还可以用这个
Insertinto表
Selectnumber*2+1As奇数,(number+1)*2As偶数Frommaster.dbo.spt_values
Wheretype='P'
‘肆’ 怎么用SQL语句取奇偶数
select * from tableA where abc%2 = 1
‘伍’ SQL怎么判断查奇偶数
首先第一句话:虽然我不知到这两个数是什麽,但我知道你一定也不知道。 从这句话说明孙手里拿到的两个数肯定都不是素数(什么是素数?就是除了1和它本身以外不再有其他因数的自然数),不然的话,孙通过知道庞的和就可以唯一判断出这两个数字了
推理一:比如A=a+b,B=a*b;B=15,A=8,那么很容易就猜想到了a=3,b=5 (因为对15进行拆分只有一种可能),所以对庞的第一句话产生了矛盾;那么a,b两个数可能是一个奇数,一个偶数;另外有位大神认为任意大于4的偶数都能被拆成两个奇质数之和,但由于两个质数都要小于99,所以庞手上的数可能为偶数,但这个偶数会接近200(有182,184,188,190,192,196和198),除此之外,只可能是奇数;举例:如果庞涓手上是28,可以拆成11+17,当孙膑拿到了187这个积,马上就可以猜出鬼谷子给他的两个数是11和17,与庞涓肯定孙膑不知道这两个数相矛盾,因此有可能拆成两个2-99的质数和的数都要排除因此有可能拆成两个2-99的质数和的数都要排除
推理二:庞的和数一定不是大于55的数。因为大于53的数始终能够拆成质数53和另一个大于2的数,在2-99的限制下,这两个数的乘积只有这唯一一种拆分方法。举例:如果庞手上的和数是57,可以拆成53+4,当孙膑拿到212这个积,只有4*53这一种拆分可能性,因为2*106的另一种拆分方法导致有一个数超过99。由此排除55以上的所有所有数因此最后满足以上条件的这样的数字仅有11个:11,17,23,27,29,35,37,41,47,51,53。
第二句话:本来我不知道,现在知道了;这说明孙看了自己手上的积后,分解因式对应的所有拆分情况中有且仅有一种,两个因数的和是以上11个数中的一个。
第三句话:那我也知道了;由于庞涓并不知道两数积,所以只能从以上表格出发确定,最后得到两个数字分别是4和13
也许上面的解析并不通俗易懂,其中涉及到很多数学知识和推理能力,如果感兴趣可以基于上述讲解自行进行推导;其实这道题的本质是基于每次的问题进行排除,尽可能的缩小范围,最后得到结果;那么最后通过SQL的方式来解决这类问题,或许通过sql(基于HQL)的方式可以帮助读者更加清晰理解
‘陆’ 请教一个SQL高级查询 (奇数偶数分开显示)
可以用full join 来实现
select T1.*,T2.*
from (select * from tab1 where id % 2= 1) as T1
full join
(select * from tab1 where id % 2 = 0) as T2
on T1.id + 1 = T2.id
‘柒’ 用PL/SQL语句求100以内的奇数和偶数和(if和for结构)
DECLARE
V_SUM_ODD NUMBER(10) := 0;
V_SUM_EVEN NUMBER(10) := 0;
V_SUM NUMBER(10) := 0;
BEGIN
FOR I IN 1 .. 100 LOOP
IF MOD(I, 2) = 0 THEN
V_SUM_ODD := V_SUM_ODD + I;
ELSE
V_SUM_EVEN := V_SUM_EVEN + I;
END IF;
END LOOP;
V_SUM := V_SUM_ODD + V_SUM_EVEN;
DBMS_OUTPUT.PUT_LINE('奇数和:' || V_SUM_ODD);
DBMS_OUTPUT.PUT_LINE('偶数和:' || V_SUM_EVEN);
DBMS_OUTPUT.PUT_LINE('奇数和与偶数和:' || V_SUM);
END;
‘捌’ 请问如何把excle奇数和偶数列分别匹配
展开全部
在数据后面空白列处使用一列,自上而下从1开始至最后一行,该列右边一列输入“=mod(C1,2)”引号内的内容,其中C1,换成你输入序数1的单元格名称,然后使用排序,即可实现!
‘玖’ SQL 提取奇数和偶数问题,像如下数字: 69227101832620205433 想要的 偶数 622082620204 奇数 9711333
CREATE PROCEDURE P1
@V VARCHAR(50),@J VARCHAR(50) OUTPUT,@O VARCHAR(50) OUTPUT
AS
DECLARE @I INT
SET @J=''
SET @O=''
SET @I=1
WHILE @I<=LEN(@V)
BEGIN
IF CAST(SUBSTRING(@V,@I,1) AS TINYINT)%2=1 SET @J=@J+SUBSTRING(@V,@I,1) ELSE SET @O=@O+SUBSTRING(@V,@I,1)
SET @I=@I+1
END
GO
--调用
DECLARE @J VARCHAR(50),@O VARCHAR(50)
EXECUTE P1 '69227101832620205433',@J OUTPUT,@O OUTPUT
PRINT @J
PRINT @O
‘拾’ SQL 编写程序,计算并输出1~100之间的所有奇数和与偶数和
declare
@i
int,@Jsum
int,@Osum
int
set
@i=1
set
@Jsum=0
set
@Osum=0
while(@i<=100)
begin
if(@i%2=0)
set
@Osum=@osum+@i
else
set
@Jsum=@Jsum+@i
set
@i=@i+1
end
select
@Jsum
as
'奇数和',@Osum
as
'偶数和'
得出结果
奇数和:2500
偶数和:2550