sql語句的常用邏輯處理

2021-08-09 13:24:52 字數 2033 閱讀 3337

#table @table 的區別

#定義的表不drop不會釋放

@定義的表會自動釋放

建立#table有兩種方式:

1.select * into #t from tablename

2.create table #tablename( 

coumnname1 nvarchar(36)

)建立@table也有兩種方式用法同上

1.select * into @v from tablename

2.declare @v table

(columnname1 int ,

columnname 2 nvarchar(36)

)判斷語句

declare @flag int

set @flag =0

if @flag=0

begin

print('我是0');

end 

else if @flag=1

begin

print('我是1');

end

用分組篩選批量重複

row_number over()生成的列可以作為查詢條件。

實現方式:

在sqlserver下編寫語句:

select * from (

select     row_number() over(partition by projectname,businessmodelname,city,mtime order by versionstarttime desc) as rownum ,* from (

select indicatorvalue,versionstarttime,projectname,businessmodelname,city,month(statisticalcycle) mtime  from  dbo.incometargetact where 

planactdatatype=2 and statisticalcycle >=cast(cast(year(getdate()) as varchar(4)) as datetime)

and validstatus= 1 and versionendtime is null   and organizationname=@orgname ) as t 

)as at where rownum = 1

臨時表繫結資料
--寫字樓計畫監控

declare @plan table (

businessname [nvarchar](36), --

planvalue decimal(18,4), --

plantotalvalue decimal(18,4), --

warnvalue decimal(18,4) --

)--繫結第一列

insert into @plan  (

column

)select cname from table

--繫結第二列

update   @plan

set    planvalue =(select indicatorvalue from #t t where t.bussinessmodename =businessname and t.indicatorname='我')

--繫結第三列

update   @plan

set    plantotalvalue =(select indicatorvalue from #t t where t.bussinessmodename =businessname and t.indicatorname='實')

--繫結第四列

update   @plan

set    warnvalue =(select indicatorvalue from #t t where t.bussinessmodename =businessname and t.indicatorname='自')

SQL 邏輯處理

自己推理出來的 sql邏輯處理 判斷分情況執行不同的sql 值得收藏 select decode stat,e select ok from dual f select no from dual from select case when aa bb 0 then e else f end stat...

SQL 語句的執行邏輯

本文的 sql語句執行,主要考察的是 dql操作。因為查詢操作,是資料庫使用中最為頻繁的操作,其他如 insert update delete也都會依賴查詢操作。如果能對邏輯查詢的執行順序比較熟悉,那麼分析 sql語句也將會事半功倍。通常,乙個複雜的 sql查詢語句不外乎包含下面的一些操作,共 11...

sql常用sql語句

1 查詢某個庫中所有的表名字 select name from sysobjects where xtype u and name dtproperties order by name 2 得到資料庫中所有使用者檢視 select name from sysobjects where xtype v...