sql的分支語句
Ⅰ sql 分支語句
UPDATE table12222 SET 折扣=5 + (400-訂單數量)/100
不過,你可能是要求>100
UPDATE table12222 SET 折扣=(
if 訂單數量>100 then
case 訂單數量
when 訂單數量>400 then 5
when 訂單數量>300 then 6
when 訂單數量>200 then 7
else 8
end
else 10
end
)
Ⅱ sql中有「分支語句」嗎
在寫SQL腳本的時候會遇到條件語,比如IF,case when等,都會產生分支語句。
Ⅲ 關於SQL語句的分支判斷
你的意思不太明確啊,能補充說全點嗎?
最好把表結構放上來,把你需要的查詢功能說出來
Ⅳ SQL資料庫中:分支語句和循環語句各自可以嵌套,也可以相互嵌套。這個
可以多個嵌套,但是只要一個條件不滿足結果都查詢不到,你把語句寫出來看下
Update Table Set a='5' Where b=
(Select b
From Table
Where c In (Select c
From Dmpedi.Pps_Temp
Where b = '2'
And Rownum < 5)
And Rownum = 1)
Ⅳ 新手上路,sql語句中想要實現分支
declare @type varchar(10)
if @type=1
begin
insert into 表名(欄位1,欄位2,欄位3,欄位4,欄位5)
select 欄位1,欄位2,欄位3,欄位4,欄位5
end
if @type=0
begin
update 表名 set 欄位1='',欄位2='',欄位3='',欄位4='',欄位5='' where 您的條件=某值
end
Ⅵ access關於SQL語句的分支判斷
case when A.siteId < B.SiteID then
linesite.siteID between A.siteId and B.SiteID
else
linesite.siteID between c.siteId and d.SiteID
end
這個條件有點復雜了
當 A.siteId < B.SiteID 的時候, 要求
linesite.siteID between A.siteId and B.SiteID
否則 要求
linesite.siteID between c.siteId and d.SiteID
換種方式寫的話……
(
( A.siteId < B.SiteID
AND linesite.siteID between A.siteId and B.SiteID
)
OR
( A.siteId >= B.SiteID
AND
linesite.siteID between c.siteId and d.SiteID
)
)
Ⅶ SQL是否有分支判斷語言
你這種情況用不著分支語句,
如果=2修改時是完全修改的話,如下:
delete B from A,B
where A.column>1 and (AB主鍵關聯)
go
innsert into B
select * from A
where column<3
go
查詢結果重復利用的問題:
鑒於你要用到的SQL插入語句是insert into table1 select * from table2
所以任何一次執行都是要進行select 的,但是SQL 引擎對這種情況提供了緩存機制,也就是每一個查詢語句都不是直接就執行的,而是先到緩存區調用想同的查詢,提高效率。我想這種做法雖然達不到你所說的重復利用,但是已經很不錯了。
另外,如果你不想影響讓這個查詢影響別人對A表的操作,那你可以將數據先存到一個臨時表,變成每次只對A表查詢一次,然後對臨時表多次的操作。
至於你說的SQL 的分支語句,sql有幾個特殊語法可以解決:while,if,goto label, if exists() 等等,詳細的用法網上有不少詳解。
最後想說的是,能不用游標最好不用,除非你很強,知道什麼時候用游標比其他方式的效率都高。
Ⅷ 簡述在plsql程序中分支語句有幾種情況
一plsql程序簡介
plsql就是對sql程序的擴展,使我們更好的在Oracle資料庫上操作數據
1.plsql的程序結構
plsql的程序結構分為四部分:
declare
聲明部分(變數的聲明,游標的申明,異常說明);
begin
plsql執行語句
exception
異常處理語句
end;
Ⅸ SQL中判斷分支語句怎樣寫,幫忙
不同的資料庫語法有點不同,一般SQL應如下寫法:
select (CASE WHEN ( t1.PRICE is null ) then v.Selling2 else t1.PRICE end) as "PRICE"
from AGENTGOODSCHECK t1 left join V_AGENTGOODSMASTER v
on t1.GOODSCODE=v.OrderCode
where CONVERT (VARCHAR(10),DATEADD(DAY,-1,t1.VDATE),111) = '2011/11/24'
and t1.GOODSCODE='000809'
and t1.STATUS<>'03'