SQL語句刪除一個表中的多條記錄
[小子 徐三][ 情天小帥豬] ,謝謝二位!如果在海量數據中保留少許數據哪,以原題為例,保留c、e、f的方法? 求教中。。。 2008-05-14 16:51
如果是刪除c、e、f之外的記錄哪
我來回答:
第一種方法:
DELETE FROM [table] WHERE date not in('c','e','f') ;
第二種方法:
DELETE FROM [table] WHERE not ([date]'c' or [date]'e' or [date]'f') ;
注:在表名或列名的外面加是[ ] 中括號,是為了防止與sql關鍵字重復造成出錯,如table是sql的保留關鍵字。
Oracle中怎樣一次執行多條sql語句
有時我們需要一次性執行多條sql語句,而用來更新的sql是根據實際情況用代碼拼出來的
解決方案是把sql拼成下面這種形式:
begin
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;
總結如下:
以begin開始,以end;結尾(end后的分號不能省),中間的每個sql語句要以分號;結尾
在實際編碼中,發現即使這樣也會有錯誤發生,把sql語句中的換行符替換成空格就可以了
比較穩妥的編碼方式是:
1、以正常的方式編寫sql,根據閱讀與編寫的需要,中間肯定會有換行符
2、在執行之前進行替換:strSql = *e("r\n", " ").Replace('\n', ' ');
如果不采用這種方式,可能的異常有:
ORA-00933: SQL 命令未正確結束(如果sql沒有以分號結尾)
ORA-00911: 無效字符(如果未加begin 和 end)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出現符號 "end-of-file"在需要下列之一時:。。(如果end后面沒有;分號)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出現符號 ""在需要下列之一時:。。(語句之間有換行符)
如何使用一條SQL語句,插入多條記錄
用insert 和select 組合語句
例子如下:
數據插入Sales表:
INSERT INTO Sales(EmployeeID,ProductID,SupplierID,CustomerID,
OrderDate,UnitPrice,Total,Quantity,Discount)
SELECT *eeID, *tID, *erID,
*erID, *ate, *ice,
*ty**ice*(*nt)Total,
*ty, *nt
from Orders o,[Order Details] od, Employees e,
Products p, Suppliers s, Customers c
where (*D = *D) and
(*eeID = *eeID) and
(*erID = *erID) and
(*tId = *tID) and
(*erID = *erID);
多條sql語句如何拼接
SQL語句拼接一般使用【union all】和【union】
兩者的區別是:
【union all】:顯示多條語句里的全部記錄;
【union】:顯示多條語句里的不重復的記錄,也就是有DIstinct的功效;
【union all】示例:
select '2016-02-06' date_time union all
select '2016-02-14' union all
select '2016-06-12' union all
select '2016-09-18' union all
select '2016-10-09' union all
select '2016-10-09'結果為6行
【union】示例:
select '2016-02-06' date_time union all
select '2016-02-14' union all
select '2016-06-12' union all
select '2016-09-18' union all
select '2016-10-09' union all
select '2016-10-09'結果為5行
如何一次插入多條記錄的SQL語句
在使用SQL數據庫的時候,我們也許會需要一次像數據庫中添加多條記錄,那么我們可以使用SQL語句來實現,該語句具體如下:
--添加一條記錄
INSERT INTO tableName(col1,col2,col3) VALUES (1,2,3)
--添加多條記錄
INSERT INTO tableName(col1,col2,col3)
SELECT 3,4,5
UNION ALL
SELECT 6,7,8
--從另外的一張表中讀取多條數據添加到新表中
INSERT INTO tableName(col1,col2,col3)
SELECT a,b,c FROM tableA
--從其他的多張表中讀取數據添加到新表中
INSERT INTO tableName(col1,col2,col3)
SELECT a,b,c FROM tableA WHERE a=1
UNION ALL
SELECT a,b,c FROM tableB WHERE a=2
上邊代碼中的into都可以省略!
上邊代碼中的union all如果換成union,則相同記錄只插入一次,不會重復插入。
另外一種方法是SQL Server2008特有的,所以,如果你不是SQL Server2008,就不能使用這種方法了。
INSERT INTO MyTable(ID,NAME)VALUES(7,'003'),(8,'004'),(9,'005')
create table [TEST]
(
[NUM_ID] int primary key
)
go
declare @temp int
set @temp=1;
while @temp
如何用SQL語句實現查詢幾到幾條數據
看來必須說清楚你才明白:
for i=1 to session(XX)
*xtnext這一部分是將記錄指針移動的語句,如果不移動,每次從第一條記錄顯示
session(XX)
是為了保存已經瀏覽過的記錄的指針數,在重新查詢時,要啟動網頁,一般變量會丟失,需要用內置對象session
do while not * and X<=4
X=X+1 這里加這個語句
*xtloopsession(XX)=session(XX)+X 這個語句加在這里
這個程序我已經調試過,很成功,在1000多記錄中每次顯示10條,十分流暢。
給你一個思路:
1、在查詢中設置一個中間變量X,將X存儲在session變量中,查詢時在循環中增加變量X,循環結束后存儲到session變量中
session(XX)=session(XX)+X
2、sql查詢語句和以前一樣,不過要增加 and X<5
3、在循環前增加下面的循環
怎么利用sql語句往表中一次插入多條記錄a
寫多個sql語句用","號分隔開可以嗎?這樣也可以算是一個查詢語句吧!在sql中沒有循環這東西,我就想到這辦法了,希望能幫得了你!
insert into tablename(字段名1,字段名2。..) values(值1,值2。..),
insert into tablename(字段名1,字段名2。..) values(值1,值2。..)。..
重復以上動作!
記住字段名與值是一一對應的!