sql數據庫有哪些判斷語句
可以寫存儲過程或者觸發器。那里有控制語句。和c的差不多。因為SQL是高度非過程化的 語言,不可能有IF的,只能用存儲過程處理了。
CREATE PROCEDURE order_tot_amt
@o_id int,
@p_tot int output
AS
SELECT @p_tot = sum(Unitprice*Quantity)
FROM orderdetails
WHERE ordered=@o_id
GO
實例 設有兩個表為Product,Order_,其表內容如下: Product
產品編號 產品名稱 客戶訂數
001 鋼筆 30
002 毛筆 50
003 鉛筆 100
Order_
產品編號 客戶名 客戶訂金
001 南山區 $30
002 羅湖區 $50
003 寶安區 $4
請實現按編號為連接條件,將兩個表連接成一個臨時表,該表只含編號.產品名.客戶名.訂金.總金額, 總金額=訂金*訂數,臨時表放在存儲過程中 代碼如下:
Create proc temp_sale
as
select a.產品編號,a.產品名稱,b.客戶名,b.客戶訂金,a.客戶訂數* b.客戶訂金 as總金額
into #temptable from Product a inner join Order_ b on a.產品編號=b.產品編號-----此處要用別名
if @@error=0
print 'Good'
else
print 'Fail'
go
怎么區別SQL里的各種查詢語句
查詢語句的格式是
select 【要查詢的字段】 from 【表名】 where 【約束條件】
如果要分組 再加上 group by 【按照哪個列分組的列名】
如果要排序 再加上 order by 【按照那個列排序的列明】 asc/desc --二者選其一asc是升序,另一個是降序
例如:
select * from student where sex='男' --*代表列的所有字段
order by birthday desc
意思是 查詢 student表中的 而且性別為男的所有信息 并且按照生日的降序排列
插入語句
格式是
insert into [表名](列1,列2,列3。.) values ('列1的值,'列2','列3值'。) --注意日期類型的數據不能加單引號
例子
insert table student(name,sex,birthday) values ('小明','男',1990-01-01) --into可要可不要,數據要與列明要一一對應
更新語句
update [表名] set [列明]=更新的值 where 。. --后面也是限制語句,就是寫一個條件比如 (where name='小明')
例子
update student set sbirthday=1991-01-01 where name='小明'
意思是把名字為小明的列的 生日該為 那個日期
刪除語句
delete table [表名] where。--也是條件和上面一樣
例子
delete table student where name='小明'
意思是刪除名字為小明的列的所有數據
delete 表名 -- 即刪除指定的表
delete database 數據庫名 --即刪除指定的數據庫
SQL中if語句判斷時間怎么寫
1. 建議這種邏輯在代碼中寫,不要增加數據庫負擔
2. 非要寫在sql里面可以用case when:
case when (tm > '7:00' and tm < '10:30') then "早上" else case when (tm > '10:30' and tm < '15:00') then "中午" else case when(tm > '17:00' and tm < '21:00') then "晚上" end end end