sql语句学习中二

当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'news_type' 中的标识列插入显式值。一般用powerdesigner时候做测试数据的时候把主键
的identity(1,1)去掉就可以了!
select getdate() as mydate;
2008-08-13 15:02:25.077
得到日
select Day(getdate()) as mydate;
13
得到月
select Month(getdate()) as mydate;
8
得到年
select Year(getdate()) as mydate;
得到小时
select Datepart(hh,getdate()) as mydate;
下表列出了 Microsoft SQL Server 2005 Mobile Edition 可识别的 datepart 选项和缩写:
日期部分  缩写 
年份 yy、yyyy 季度 qq、q 月份  mm、m 每年的某一日 dy、y 日期 dd、d
星期 wk、ww 工作日dw小时 hh 分钟 mi、n 秒 ss、s 毫秒 ms

if语句
create function getMyweekday()
returns varchar(50)
as
begin
declare @day int
declare @weekday varchar(50)
set @day=Convert(int,Datepart(weekday,getdate()))
if(@day=1)
set @weekday='星期日'
else if(@day=2)
set @weekday='星期一'
else if(@day=2)
set @weekday='星期二'
else if(@day=2)
set @weekday='星期三'
else if(@day=2)
set @weekday='星期四'
else if(@day=2)
set @weekday='星期五'
else if(@day=2)
set @weekday= '星期六'
return @weekday
end;

 

这个是标量值函数
use MyDatabase
go
create function xingqi()
returns varchar(10)
as
begin
declare @Today int;
declare @weekday varchar(10);
set @Today=DatePart(dw,Getdate());
set @weekday=case @Today
             when 1 then '星期天'
             when 2 then '星期一'
             when 3 then '星期二'
             when 4 then '星期三'
             when 5 then '星期四'
             when 6 then '星期五'
             when 7 then '星期六'
             else '弥撒'            
             end;
return @weekday
end
上面是简单case函数

下面是搜索case函数
use MyDatabase
go
create function xingqi()
returns varchar(10)
as
begin
declare @Today int;
declare @weekday varchar(10);
set @Today=DatePart(dw,Getdate());
set @weekday=case
             when @Today=1 then '星期天'
             when @Today=2 then '星期一'
             when @Today=3 then '星期二'
             when @Today=4 then '星期三'
             when @Today=5 then '星期四'
             when @Today=6 then '星期五'
             when @Today=7 then '星期六'
             else '弥撒'            
             end;
return @weekday
end

create function getMyweekday()
returns varchar(50)
as
begin
declare @day int
set @day=Convert(int,Datepart(weekday,getdate()))
return @day
end


这个是表值函数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

create function [dbo].[select_news]
(
@id int,
@title varchar(100)
)
returns TABLE
as
return
(
select id,title
from news
where id<22
);

 

游标举例:

use luntan
go
declare @id nvarchar(20) --定义变量来保存ID号
declare @A float                  --定义变量来保存值
declare mycursor cursor for select id,typeid from news   --为所获得的数据集指定游标
print @@fetch_status
open mycursor                --打开游标
fetch next from mycursor   --开始抓数据
WHILE @@FETCH_STATUS = 0  --这时才可以检查@@fetch_status的值,=0表示成功,这里是一个循环
  BEGIN
     -- This is executed as long as the previous fetch succeeds.
     FETCH NEXT FROM mycursor--这里的fetch语句被循环执行。
 if @@fetch_status <> 0   
        print @@fetch_status  
  END   
close mycursor        --关闭游标
deallocate mycursor --删除游标

 

fetch next from mycursor into @id

posted on 2008-08-14 17:06  小顾问  阅读(331)  评论(0)    收藏  举报