--下面的**生成長度為12的編號,編號以bh開頭,前四位數字為col欄位,其餘6位為流水號。
--得到新編號的函式
alter
function f(@col
int)
returns
char(12)as
begin
return(select'bh
'+right(10000
+@col,4)+right(1000001
+isnull(right(max(bh),6),0),6) from tb with(xlock,paglock) where col=
@col
) end
go--
在表中應用函式
drop
table
tb;create
table
tb(bh
char(12) primary
key,
col
intnot
null)--
插入資料
begin
tran
insert tb(bh,col) values(dbo.f(1),1
)
insert tb(bh,col) values(dbo.f(2),2
)
insert tb(bh,col) values(dbo.f(3),3
)
insert tb(bh,col) values(dbo.f(4),4
)
insert tb(bh,col) values(dbo.f(1),1
)
insert tb(bh,col) values(dbo.f(1),1
)
insert tb(bh,col) values(dbo.f(1),1
)
insert tb(bh,col) values(dbo.f(2),2
)
insert tb(bh,col) values(dbo.f(2),2
)
insert tb(bh,col) values((select'bh
'+right(10000
+2,4)+right(1000001
+isnull(right(max(bh),6),0),6) from tb with(xlock,paglock) where col=
2) ,2
)commit
tran
--顯示結果
select
*from
tb/*
結果bh0001000001 1
bh0001000002 1
bh0001000003 1
bh0001000004 1
bh0002000001 2
bh0002000002 2
bh0002000003 2
bh0002000004 2
bh0003000001 3
bh0004000001 4
*/
SQL 根據表獲取字段字串
sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 sqlserver查詢單個資料表所有欄位名組合成的字串指令碼 應用場合 用於生成sql查詢字串中select 欄位名列表1 from table group by 欄位名列表2 中的欄位名列表1和欄位名列表2部分 定義資料表名稱變數 de...
MYSQL查詢某欄位中以逗號分隔的字串的方法
首先我們建立一張帶有逗號分隔的字串。create table test id int 6 not null auto increment,primary key id pname varchar 20 not null,pnum varchar 50 not null 然後插入帶有逗號分隔的測試資料...
MYSQL查詢某欄位中以逗號分隔的字串的方法
首先我們建立一張帶有逗號分隔的字串。create table test id int 6 not null auto increment,primary key id pname varchar 20 not null,pnum varchar 50 not null 然後插入帶有逗號分隔的測試資料...