表 A:id country
----------------------------
1 中国; 日本; 韩国
2 美国; 意大利; 法国
3 德国拆分成:id country
-----------------------------
1 中国
1 日本
1 韩国
2 美国
2 意大利
2 法国
3 德国
----------------------------
1 中国; 日本; 韩国
2 美国; 意大利; 法国
3 德国拆分成:id country
-----------------------------
1 中国
1 日本
1 韩国
2 美国
2 意大利
2 法国
3 德国
select 1,'A10' union all
select 2,'A20,A20S' union all
select 3,'A30,A30K,A30M' union all
select 4,'A301' union all
select 5,'A301M'
select * from tblTest
go-- 建立一个辅助的临时表就可以了
SELECT TOP 8000
id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
-- 这个辅助表是什么含义,为下一步铺垫的目的是什么?
-- 以上生成一个临时表
SELECT
A.PdID,
PdName = SUBSTRING(A.PdName, B.ID, CHARINDEX(',', A.PdName + ',', B.ID) - B.ID) --这个SUBSTRING在B.ID每一次执行的时候的值是多少?
FROM tblTest A, # B
WHERE SUBSTRING(',' + a.PdName, B.id, 1) = ',' --这个where后面的检索条件又代表什么含义?
ORDER BY 1,2
GODROP TABLE tblTest, #
INSERT A
SELECT 1,'中国;日本;韩国' UNION ALL
SELECT 2,'美国;意大利;法国' UNION ALL
SELECT 3,'德国'
SELECT * FROM A-- 建立一个辅助的临时表就可以了
SELECT TOP 8000 id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
SELECT
A.ID,
COUNTRY = SUBSTRING(A.COUNTRY, B.ID, CHARINDEX(';', A.COUNTRY + ';', B.ID) - B.ID)
FROM A, # B
WHERE SUBSTRING(';' + a.COUNTRY, B.id, 1) = ';'
ORDER BY 1,2
GO
DROP TABLE A,#
INTO # FROM syscolumns a, syscolumns b 什么意思啊?
--创建测试
create table #tb (id int,country varchar(100))
insert into #tb
select 1,'中国;日本;韩国' union all
select 2,'美国;意大利;法国' union all
select 3,'德国'---------------------
--测试方法
SELECT TOP 4000
id = identity(int,1,1)
INTO #Temp
FROM syscolumns a, syscolumns b --这里什么意思?SELECT A.id, country = SUBSTRING(A.country, B.ID, CHARINDEX(';', A.country + ';', B.ID) - B.ID)
FROM #tb A, #Temp B
WHERE SUBSTRING(';' + a.country, B.id, 1) = ';' --此方法好
order by a.id
--测试结果
/*
id country
1 中国
1 日本
1 韩国
2 美国
2 意大利
2 法国
3 德国
*/
--删除测试环境
drop table #Temp
drop table #tb
INTO # FROM syscolumns a, syscolumns b 什么意思啊?
直接在查询分析器中执行这条语句
再select * from #
就知道了这里产生一个临时表#
数据为
1
2
3
...
http://community.csdn.net/Expert/topic/5033/5033176.xml?temp=.8092157
INTO # FROM syscolumns a, syscolumns b什么意思啊?
保证有8000条数据,没有其他意思。
???
我晕,重要是方法,你可以变通啊,呵呵