資料庫當然就是用來存儲數據的
只不過訪問和查詢比較快
sql是一種資料庫描述語言
實際也就是程序語言
在主流編程語言中均支持
資料庫管理軟體主要有微軟的ms
sql,
orcal,db2,和mysql
語法相似
最好學mysql
因為現在php比較流行
而php+mysql+alpha是主流的建站選擇
B. 求sql 寫法 數據按指定數量拆分最後不足,由一條數據補充
每箱300,也就是只要處理尾數,其餘都是300。
如果用SQL也是可以通過循環表處理的,不過這個在程序里寫邏輯會更清晰些,減少跟後台數據交換,不管效率上維護性上都推薦。
foreach(遍歷你有多少批){
do while(總數>0){分配箱號;
if (總數>=300){
總數-300;
分配批次號+300;}
else{分配批次號+總數(其實就是尾數);
總數=0;
}
}
}
C. sql 補齊數據 語句
可以建個表biao1保存a的值,表biao2保存b的值,原來的表是biao0,
with
temp1 as (select biao1.a,biao2.b from biao1,biao2)
select temp1.a,temp1.b,nvl(biao0.value,0) from temp1 left join biao0 on biao0.a=temp1.a and biao0.b=temp1.b
D. 用SQL語言補充完整
1:
SELECT c.顧客號,c.顧客名,o.商品號,o.數量
from C,O
where c.顧客號=o.顧客號
2:
SELECT
FORM C,O
WHERE 顧客名=(SELECT 顧客號,max(數量) FORM O);
3:
SELET o.商品號、o.商品名,sum(數量)
FROM O,A,C,
WHERE o.商品號=a.商品號
and c.顧客號=o.顧客號
and c.性別='女'
GROUP BY O 商品號,商品名;
4:ALTER TABEL add 產地 char(30)
E. SQL自動補全數據的語句怎麼寫
Select right('000000'+convert(varchar(10),b),6) as b from a
F. sql數據補位
用lapd函數,左補零
用法
select LPAD(100,5,0) from al
100為欄位名,5為補完後的長度,0為補充的字元
G. 請教用sql語句補充欄位的問題
試下這個吧
UPDATE a, b SET a.通訊地址 = [B]![通訊地址]
WHERE (([A]![姓名]=[B]![姓名] And [A]![通訊地址] Is Null));
access的使用(對於SQL不熟的一點建議)
先切成 SQL視圖 在裡面寫基本的update、select等
然後切成 設計視圖 在裡面用界面化設計
H. SQL語句補充完善,謝謝幫助
我這樣理解不知道對不對!
1.你想獲得各個地區N的總量大於N的平均值(當然這個比較好做,而你的方法也是對的但是我還可以補充一下,還有一個方法可以做到!那就是用 select..from....group by.... having+條件)
select
農田養分數據.sum_n_hl
from 農田養分數據
group by 農田養分數據.sum_n_hl
having 農田養分數據.sum_n_hl>avg(農田養分數據.sum_n_hl)
這樣使用分組也可以查詢!
2.你要得到各個地區N的總量小於N的平均值中最小的地區,所謂最小我們應該想到要用 min函數
最大當然使用 max函數:
步驟:
一.首先,我們可以根據1中的方法獲得所有N含量<N的平均含量的所有地區,這樣我們就可 以得知N含量<N平均含量最小的地區就在我們剛才所獲得這些地區裡面
select
農田養分數據.sum_n_hl
from 農田養分數據
where
農田養分數據.sum_n_hl<(select AVG(農田養分數據.sum_k_hl) from 農田養分數據)
二.那麼我們已經知道了N含量最小的就包含在 "步驟一"中所查詢到的地區裡面,接下來我們只需要在這些地區中找到N含量最少的地區就好!
三.這是SQL語句:
select min(農田養分數據.sum_k_hl) from 農田養分數據
where 農田養分數據.sum_k_hl in (select 農田養分數據.sum_k_hl from 農田養分數據
where 農田養分數據.sum_k_hl <(select avg(農田養分數據.sum_k_hl) from 農田養分數據 )
這樣的話問題就解決了!TSQL語句其實很簡單吧!只是要搞清邏輯就好。 希望對你有所幫助....
I. sql語句,問題補充如下。
①首先先來解決你這個問題,支持版本oracle 10g:
create table tony_test_a(a_id number ,a_value varchar2(30));
create table tony_test_b(b_id number ,aid_str varchar2(30));
值:
tony_test_a表
1 a
2 b
3 c
tony_test_b表
1 [1],[2]
2 [3]
3 [1],[3]
得到你想要的結果sql如下:
select m.b_id, wmsys.wm_concat(m.a_value) a_value_all
from (select res.b_id, a.a_value
from (select x.b_id,
substr(x.col_1, x.pos1, x.pos2 - x.pos1 - 1) a_id
from (select t.col_1,
t.b_id,
level as lv,
instr(',' || t.col_1 || ',', ',', 1, level) as pos1,
instr(',' || t.col_1 || ',', ',', 1, level + 1) as pos2
from (
/**將某欄位,由逗行分隔的列值轉成行**/
select b.b_id,
replace(replace(b.aid_str, '['), ']') col_1
from tony_test_b b) t
connect by level <=
(length(t.col_1) -
length(replace(t.col_1, ',', ''))) + 1) x) res,
tony_test_a a
where a.a_id = res.a_id
group by res.b_id, a.a_value
order by res.b_id,a.a_value) m
group by m.b_id;
②若是b表設計成這樣,那隻能說實在太搓了,顯然是和a表為多對多的關系,應該在中間有一個中間表將二者關聯起來,而非存類似於[1],[2],[3]的值。
J. sql數據補充問題
declare @id varchar(50)--聲明id變數
declare @date datetime--聲明日期變數
declare @tempdate datetime--聲明臨時日期變數
declare addDatas cursor--聲明一個游標
for select id,min(date) from tableName group by id
open addDatas--打開游標
fetch next from addDatas into @id,@date--取下一行數據到變數中
while @@fetch_status=0--如果有數據
begin
set @tempdate=dateadd(dd,1,@date)--臨時日期變數賦值上一日期變數的天數加1
while datediff(mm,@date,@tempdate)=0--如果和上一日期是同一個月,則開始循環增加
begin
declare @countNum int--聲明統計變數
select @countNum =count(*) from tableName where id=@id and date=@tempdate
if isnull(@countNum,0) <=0--如果該id下的該日期不存在則插入
begin
exec('insert into tableName(id,date,num) values('+@id+','+@tempdate+',null)')
end
set @date=@tempdate
end
fetch next from addDatas into @id,@date
end
close addDatas--關閉游標
deallocate addDatas--釋放游標