晕都没人回了,怎么每次我问的结果都是这样的结局呢,还是我自己来揭贴吧。 CREATE FUNCTION DecToData (@Data int) RETURNS char(15) AS BEGIN DECLARE @TempData char(15) DECLARE @Temp int set @Temp=(@Data); while(@Data>30) set @Data=(@Data/2); set @TempData='' if(@Data>15)begin set @TempData='+4' set @Data=(@Data/2) end if(@Data>7)begin set @TempData='+3'+ CAST(@TempData AS CHAR(10))set @Data=(@Data/2) end if(@Data>4)begin set @TempData='+2'+CAST(@TempData AS CHAR(10)) end if((@Temp/2)*2=@Temp) begin set @TempData='1'+CAST(@TempData AS CHAR(10)) end; else begin set @TempData='0'+CAST(@TempData AS CHAR(10)) end; return @TempData ENDselect dbo.DecToData(控制方式) as 方式 from 表
Returns varchar
As
Return left(@aa,4)
select aa,dbo.Test(aa) as bb from 表
while(x>30)
x=int(x/2);
if(x>15)a[5]=1;x=int(x/2);
if(x>7)a[4]=1;x=int(x/2);
if(x>3)a[3]=1;x=int(x/2);
if(x>1)a[2]=1;x=int(x/2);
if(x=1)a[1]=1;
return a;
再给我讲详细点吧,还有啊,
这段语句是包括在sql语句里的吗,我直接用于查询就可以了吗?
Create function Test(@aa varchar)
Returns varchar
As
Return left(@aa,4)
CREATE FUNCTION DecToData (@Data int)
RETURNS char(15) AS
BEGIN
DECLARE @TempData char(15)
DECLARE @Temp int
set @Temp=(@Data);
while(@Data>30)
set @Data=(@Data/2);
set @TempData=''
if(@Data>15)begin set @TempData='+4' set @Data=(@Data/2) end
if(@Data>7)begin set @TempData='+3'+ CAST(@TempData AS CHAR(10))set @Data=(@Data/2) end
if(@Data>4)begin set @TempData='+2'+CAST(@TempData AS CHAR(10)) end
if((@Temp/2)*2=@Temp) begin set @TempData='1'+CAST(@TempData AS CHAR(10)) end;
else begin set @TempData='0'+CAST(@TempData AS CHAR(10)) end;
return @TempData
ENDselect dbo.DecToData(控制方式) as 方式 from 表