Create Function FN_DecimalToBinary
(
@Sayi INT
)
RETURNS VARCHAR(4)
As
Begin
Declare @intvalue int = @Sayi
Declare @vsresult varchar(4)
Declare @inti int
Select @inti = 4, @vsresult = ''
while @inti>0
Begin
Select @vsresult=convert(char(1), @intvalue % 2)+@vsresult
Select @intvalue = convert(int, (@intvalue / 2)), @inti=@inti-1
End
Return @vsresult
End
Go
/* Problemin Çözümü */
Declare @SifreTablosu Table
(
Kod Int,
Sifre Varchar(20)
)
Declare @i INT = 1
Declare [USER=546016]@kod[/USER] INT
Declare [USER=191864]@sifre[/USER] VARCHAR(20)
Declare @binler INT,@yuzler INT, @onlar INT,@birler INT
While @i <= 10
Begin
Set [USER=546016]@kod[/USER] = FLOOR(RAND()*(9999-1000+1)+1000)
Set @binler = [USER=546016]@kod[/USER] / 1000
Set @yuzler = ([USER=546016]@kod[/USER] % 1000) / 100
Set @onlar = ([USER=546016]@kod[/USER] % 100) / 10
Set @birler = [USER=546016]@kod[/USER] % 10
Set [USER=191864]@sifre[/USER] = dbo.FN_DecimalToBinary(@onlar)+' '+dbo.FN_DecimalToBinary(@birler)+' '+dbo.FN_DecimalToBinary(@binler)+' '+dbo.FN_DecimalToBinary(@yuzler)
Insert Into @SifreTablosu
Select @kod,[USER=191864]@sifre[/USER]
Set @i = @i+1
End
Select * From @SifreTablosu