1樓:匿名使用者
create table test( testid int)insert into test values(357)insert into test values(2783)insert into test values(58690)-你在建立乙個表。
create table tab(rowid int)-在向資料庫裡面插入0到99
insert into tab values(0)insert into tab values(1)insert into tab values(2)insert into tab values(3)insert into tab values(4)insert into tab values(5)insert into tab values(6)insert into tab values(7)insert into tab values(8)insert into tab values(9)select substring(rtrim(str((ltrim(str(testid))+select left('0000',5-len(testid)))1,10) from test , tab where (5-len(testid))>len(rowid) or (len(testid)=5 and rowid=0) order by testid,rowid
弄了很久,也不知道你要的結果是不是這個結果,你把這段sql可以考進sqlserver2005或者2000去運枯脊行看下結果,上遲敗銀面我只新增了0--9的,你可碼宴以添到99在試下。
2樓:匿名使用者
例:表a 欄位usernumber
要把櫻逗位號段補成5為的 即3位號碼357 要變成 35700~35799要生成100個。
4位號碼2783變成27830~27839要生成閉賀10個。
5位號碼不變。
這樣轎頌派的sql/pl的補位語句怎麼寫??
3樓:匿名使用者
我在mysql下寫的儲存過程,實現了你橘彎的閉譁要求轎伍行,希望能對你有幫助。
create procedure autoincrement()
begindeclare aa bigint;
declare i int default 1;
declare bb bigint;
declare j int default 1;
select num into aa from num where length(num)=3;
set aa = aa*100;
select num into bb from num where length(num)=4;
set bb = bb*10;
update num set num=aa where length(num)=3;
update num set num=bb where length(num)=4;
while i<100 do
set aa = aa+1;
insert into num(num) values (aa);
if i<10 then
set bb = bb+1;
insert into num(num) values (bb);
end if;
set i = i+1;
end while;end
4樓:匿名使用者
create table test( testid int);
這是你的表。
create or replace procedure test_usernumber
isv_temp ;
v_temp1 ;
cursor c_b is select 100 num from dual;
cursor c_s is select 10 num from dual;
beginselect testid into v_temp from (select testid rownum r from (select * from test order by testid)) r=1;
select testid into v_temp1 from (select testid rownum r from (select * from test order by testid)) r=2;
if length(v_temp)=3 then
for vb in c_b loop
for v in loop
if length(v)=1 then
v_temp:=v_temp||'0'||v;
insert into test values(v_temp);
end if;
end loop;
end loop;
end if;
第二個同樣不寫了)
end test_usernumber;
5樓:匿名使用者
這個用遊標寫會好一些。
pl/sql查詢以這樣的方式顯示,應該怎麼寫sql語句
6樓:酒意何存
好像是2張表 但是最後兩列不知道什麼意思。
表a 部門表 表b員工表。
最後兩列有點像是單獨查詢 表b 的結果。
7樓:xx莫叫莫鳥
題目的意思應該是以最好兩列為主顯示。就是說,最後兩列為空的資料,則不顯示。
按理來說這應該是乙個多表連線查詢。
8樓:匿名使用者
有哪些表,哪些欄位,你都不給出,給出個結果,別人怎麼幫你?
9樓:
轉化成字串進行判斷字串長度,如果是3 在後面補00如果是4 在後面不乙個零。
10樓:傳說中的鷹王
用迴圈,3位的迴圈100次,4位的迴圈10次。
11樓:網友
沒有可以利用的系統函式,可以通過儲存過程或自定義函式來自己實現。
plsql中的插入語句自增長的欄位怎麼寫
12樓:時間終是永恆
在sqlserver中,可以這樣實現。
但在oracle中,你只能通過序列來實現。
首先宣告乙個序列。
create sequence 序列名。
increment by n] -用於定義序列的步長,如果省略,則預設為1,如果出現負值,則代表序列的值是按照此步長遞減的。
start with n] -定義序列的初始值(即產生的第乙個值),預設為1。
序列生成器能產生的最大值。選項nomaxvalue是預設選項,代表沒有最大值定義,這時對於遞增序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1。序列生成器能產生的最小值。
選項nomaxvalue是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1
表示當序列生成器的值達到限制值後是否迴圈。cycle代表迴圈,nocycle代表不迴圈。如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。
如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。
例項:create sequence abc increment by 1 start with 10 maxvalue 9999999 nocycle nocache;
依次插入序列號到表中。
insert into tablename (column1,column2) values (,'');
13樓:我tm不管
需先新建乙個序列,比如說是:seq_a,然後insert語句這樣寫:
values (seq_,'','','')
plsql 建表語句怎麼寫?
14樓:匿名使用者
你要建表寫乙個簡單的標準sql就行了,與pl/sql沒有關係create table dic_holiday(id varchar2(8) primary key,year varchar2(128) not null ,holiday_date varchar2(1024) not null);
自動生成這樣的流水號的sql語句怎麼寫
15樓:西樹的蝴蝶
1、如果對應的原始條碼存在和批次存在,則返回當前記錄。
2、如果不存在,則在資料庫中自動生成一條新的記錄,然後返回;
3、生產得規則是:流水號在某乙個批次內是不能重複的;
三位小數保留兩位小數是5 26這樣的三位小數中最大的是什麼?第十題什麼和什麼是特殊的平行四邊形
一個三位小數保留兩位小數是5.26這樣的三位小數中最大的是 5.264 長方形和正方形是特殊的平行四邊形 一個三位小數保留兩位小數後是5.31,那麼這個三位小數最大和最小分別是多少?四捨五入的方法 最小要舍比5小,又是三位小數 5.311 最大的要進位,所以是 5.309 最大是5.314 最小是5...
printff ,a ,用這樣的格式輸出就會自動保留六
在c 中printf保留小數位數的方法如下,您可以自行更改 例如printf 7.2f a 結果保留2位,在f前面加上 整數位保留個數.小數位保留個數 固定 m 位小數 如此 printf mf a 例如 printf 2f a 保留小數點後兩位 要保留1位小數點 printf 1f a 要保留2位...
用EXCEL函式語句找出後四位帶4的號碼
if or right a1,1 1 4,mid a1,10,1 1 4,mid a1,9,1 1 4,mid a1,8,1 1 4 號碼帶4 號碼不帶4 假設a1是你的 號碼 b1輸入上面的公式下拉!篩選,自定義,包含4444 恩,同意一樓的看法。如果你的 號碼在a列,從a1到a20000的話,在...