『壹』 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