程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> sql-MS_SQL 已知一組數據,請給出可返回所有可能的組合方式的函數

sql-MS_SQL 已知一組數據,請給出可返回所有可能的組合方式的函數

編輯:編程綜合問答
MS_SQL 已知一組數據,請給出可返回所有可能的組合方式的函數

寫一個SQL函數
從TB5中TB5Code 所維護的表中各取一個字符 組合成 XXXX 的形式,
組合的先後順序 按照TB5中lat 的大小順序

--測試數據 數據庫版本為 MS SQL SEVER 2008 R2
 create table TB1(ID  INT  IDENTITY (1,1),TB1Code VARCHAR(20),PRIMARY KEY(TB1Code)); 
insert into  TB1(TB1Code) values('A'); 
insert into  TB1(TB1Code) values('B'); 
insert into  TB1(TB1Code) values('C'); 
create table TB2(ID  INT  IDENTITY (1,1),TB2Code VARCHAR(20),PRIMARY KEY(TB2Code)); 
insert into  TB2(TB2Code) values('1'); 
insert into  TB2(TB2Code) values('2'); 
insert into  TB2(TB2Code) values('3'); 
create table TB3(ID  INT  IDENTITY (1,1),TB3Code VARCHAR(20),PRIMARY KEY(TB3Code)); 
insert into  TB3(TB3Code) values('1'); 
insert into  TB3(TB3Code) values('2'); 
insert into  TB3(TB3Code) values('3'); 
create table TB4(ID  INT  IDENTITY (1,1),TB4Code VARCHAR(20),PRIMARY KEY(TB4Code)); 
insert into  TB4(TB4Code) values('1'); 
insert into  TB4(TB4Code) values('2'); 
insert into  TB4(TB4Code) values('3'); 
/* TB5Code 為表名 Lat 為排序的先後順序 */
create table TB5(ID  INT  IDENTITY (1,1),TB5Code VARCHAR(20) NOT NULL ,Lat INT NOT NULL,PRIMARY KEY(TB5Code)); 
insert into  TB5(TB5Code,Lat) values('TB1',1); 
insert into  TB5(TB5Code,Lat) values('TB2',2); 
insert into  TB5(TB5Code,Lat) values('TB3',3); 
insert into  TB5(TB5Code,Lat) values('TB4',4); 

--DROP TABLE TB1
--DROP TABLE TB2
--DROP TABLE TB3
--DROP TABLE TB4
--DROP TABLE TB5

--/*得到的結果 是 
A111
A112
A113
A121
A122
.
.
C333
當然了 各個表的Code 字段的行數有可能自己手工增加。
*/

最佳回答:


最好舉個例子,別理解的意思和你表述的不一樣

danielinbiti
DJ_smile
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved