简单的语法知识

简介: 1 先举个例子 Codeuse myshopdeclare @ident intinsert into orders(customerid,orderdate)values(25,dateadd(day,-1,getdate()))--当前时间减去1天,就是昨天select @ident = @...

1 先举个例子

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
use myshop
declare @ident int
insert into orders
(customerid,orderdate)
values
(
25,dateadd(day,-1,getdate()))--当前时间减去1天,就是昨天
select @ident = @@identity
insert into details
(orderid,productid,unitprice,quantity)
values
(
@ident,1,50,25)
select 'the orderid of the inserted row is' + convert(varchar(8),@ident)

把数据插入定单表,得到新插入的记录的id然后插入定单明细表

2 定义变量给变量赋值
declare @myval int;
set @myval = 10;
set @myval1 = @myval2*12;
--下面语句是在查询中赋值变量
select @myval = max(id)+1 form mytable

3 if和else

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
use xland
if not exists(select id from mytable)
   
print '暂时没有数据'
else
   
print cast(@@rowcount as varchar)+'被检索到'

上面语句执行结果是   0行被检索到

4 begin和end
如果条件内部要跟代码块(多条语句)
就要用到begin和end

 

5 case语句
第一种case语句

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
use AdventureWorks

select SalesOrderID ,Position = Case SalesOrderID%10
   
when 1 then 'First'
   
when 2 then 'Second'
   
when 3 then 'third'
   
else 'some thing else'
end 
from Sales.SalesOrderHeader

第二种case语句

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
use AdventureWorks

select SalesOrderID ,Position = Case
   
when  SalesOrderID%10 = 1 then 'First'
   
when  SalesOrderID%10 = 2 then 'Second'
   
when  SalesOrderID%10 = 3 then 'third'
   
else 'some thing else'
end 
from Sales.SalesOrderHeader

第一种CASE  when子句中可以跟表达式
第二种case   when子句中表达式要返回true 或者false
当前面的条件和后面的条件同时满足时
按前面的条件处理,不需要break语句

6 循环语句
while 1=1
begin
  waitfor time '01:00'
    update mytable set num = 12 where id = 13
end
上面语句是在每天凌晨1点执行指定的操作
while允许break和continue的存在

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
use xland
if not exists(select id from mytable)
   
print '没?有?检?索?到?数?据?'
else
   
begin
       
select id from mytable
       
print cast(@@rowcount as varchar)+'行?被?检?索?到?'
   
end

上面语句执行结果是:2行被检索到

目录
相关文章
|
7月前
|
自然语言处理 数据可视化 数据挖掘
BERTopic(一)基本用法
bertopic基本用法
153 0
|
7月前
ThreadHelper用法
ThreadHelper用法
32 0
|
测试技术 API
harfbuzz 的用法
HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字体,正确排序和定位,以及任何 应用的可选字体功能。hb_shape()
472 0
$.each()的用法
$.each()的用法
241 0
|
前端开发 JavaScript