SQL字串根據要求組合,取其子字串

2022-08-11 20:30:17 字數 2210 閱讀 7641

一,現有6位數的字串,列印3位數的字串組合

declare

@svarchar(50

),

@xtinyint,@y

tinyint,@z

tinyint

set@x=1

set@s='

abcdef

'while

@x<

5begin

set@y=2

while

@y<

6begin

set@z=3

while

@z<

7begin

if (@x+@y

-1)>

5or (@x+@y

+@z-3)>

6break

print

substring(@s,@x,1)+

substring(@s,@x+@y

-1,1)+

substring(@s,@x+@y

+@z-3,1

)

set@z=@z

+1endset@y=

@y+1end

set@x=@x

+1end

二、現有6位數字串,列印4位數字串的組合

declare

@svarchar(50

),

@xtinyint,@y

tinyint,@z

tinyint,@n

tinyint

set@x=1

set@s='

abcdef

'while

@x<

4begin

set@y=2

while

@y<

5begin

set@z=3

while

@z<

6begin

set@n=4

while

@n<

7begin

if (@x+@y

-1)>

4or (@x+@y

+@z-3)>

5or (@x+@y

+@z+@n

-6)>

6break

print

substring(@s,@x,1)+

substring(@s,@x+@y

-1,1)+

substring(@s,@x+@y

+@z-3,1)+

substring(@s,@x+@y

+@z+@n

-6,1

)

set@n=@n

+1endset@z=

@z+1end

set@y=@y

+1endset@x=

@x+1end

三、第二點的另一中演算法

declare

@svarchar(50

),

@xtinyint,@y

tinyint

set@x=1

set@s='

abcdef

'while

@x<

6begin

set@y=2

while

@y<

7begin

if (@x+@y

-1)>

6break

print

replace(replace(@s,substring(@s,@x,1),''),substring(@s,@x+@y

-1,1),''

)

set@y=@y

+1endset@x=

@x+1end

四、現有6位數字串,列印5位數字串的組合

declare

@svarchar(50

),

@xtinyint

set@x=1

set@s='

abcdef

'while

@x<

7begin

print

replace(@s,substring(@s,@x,1),''

)

set@x=@x

+1end

SQL根據字串B分隔字串A

建立錶值函式 1 create function dbo f split 2 3 splitstring nvarchar max 源字串a 4 separator nvarchar 10 分隔字串b,預設為空格5 6returns splitstringstable table 輸出的資料表7 8...

SQL基礎(三) SQL根據」,「分割字串

declare sysno nvarchar 500 set sysno 4,11064,100 declare table reviewid table sysno int not null while charindex sysno 0 begin insert into table revie...

SQL 根據表獲取字段字串

sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 應用場合 用於生成sql查詢字串中select 欄位名列表1 from table group by 欄位名列表2 中的欄位名列表1和欄位名列表2部分 定義資料表名稱變數 de...