就是有一个表,100个答案全放在一个字段里面,答案的形式是:A.B,C,D !!现在想把这些值取出来和另一个表里的正确答案进行比较,另一个表也是这种形式的,请问这样的语句该怎么写啊?谢谢了!
解决方案 »
- sql防注入问题
- 查询问题
- 我用asp查询mssql的记录,怎么样获取最后一条记录的信息?
- 一个关于统计问题
- 今天终于解决了一个困惑已久的关于SQL Server安装的问题,高兴所以散点分庆祝一下!
- 用LOG EXPLORER能查到修改存储过程的人或相关信息吗
- 各位老大,公司想实现将多个分布sqlserver服务器内的数据实时传递到中心SqlServer服务器
- BULK INSERT 分割符问题
- update 动态表 set @变量='11' 怎么实现 解决就结贴。
- 启动sql server时不能自动执行自己写的存储过程?
- 紧急求助:关于sqlserver数据库的触发器问题
- 无法通过网络连接的问题。
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=rtrim(ltrim(substring(@SourceSql,@i+1,len(@SourceSql)-@i)))
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end
ID(自动增加的) 作者 机构 刊名
1 A,B,C D,E,F XX
2 H,J,F,I Z,Y,W,V YY
依次类推,作者跟机构可能是2个,或者是3个,没规律
我想要实现的功能是:
作者 机构 刊名
A D XX
B E XX
C F XX
H Z YY
J Y YY
F W YY
I V YY
数据量大概是20W 条左右,我该怎么实现呢?
谢谢您!
CREATE TABLE tb(ID int,作者 varchar(10),机构 varchar(20),刊名 varchar(10))
INSERT into tb values(1,'A,B,C', 'D,E,F' ,'XX')
INSERT into tb values(2,'H,J,F,I','ZZ,YY,WWW,VVVV','YY')
go
-- 建立一个辅助的临时表就可以了
SELECT TOP 8000 id = identity(int,1,1) INTO tmp FROM syscolumns a, syscolumns b select t1.作者,t2.机构,t1.刊名 from
(
select px=(select count(1) from
(
SELECT A.ID, b.id bid,作者 = SUBSTRING(A.作者, B.ID, CHARINDEX(',', A.作者 + ',', B.ID) - B.ID),A.刊名 FROM tb A, tmp B WHERE SUBSTRING(',' + A.作者, B.id, 1) = ','
) m where id=t.id and bid<t.bid)+1 , * from
(
SELECT A.ID, b.id bid,作者 = SUBSTRING(A.作者, B.ID, CHARINDEX(',', A.作者 + ',', B.ID) - B.ID),A.刊名 FROM tb A, tmp B WHERE SUBSTRING(',' + A.作者, B.id, 1) = ','
) t
) t1,
(
select px=(select count(1) from
(
SELECT A.ID, b.id bid,机构 = SUBSTRING(A.机构, B.ID, CHARINDEX(',', A.机构 + ',', B.ID) - B.ID) FROM tb A, tmp B WHERE SUBSTRING(',' + A.机构, B.id, 1) = ','
) m where id=t.id and bid<t.bid)+1 , * from
(
SELECT A.ID, b.id bid,机构 = SUBSTRING(A.机构, B.ID, CHARINDEX(',', A.机构 + ',', B.ID) - B.ID) FROM tb A, tmp B WHERE SUBSTRING(',' + A.机构, B.id, 1) = ','
) t
) t2
where t1.id = t2.id and t1.px = t2.px
order by t1.id , t1.pxDROP TABLE tb,tmp/*
作者 机构 刊名
---------- -------------------- ----------
A D XX
B E XX
C F XX
H ZZ YY
J YY YY
F WWW YY
I VVVV YY(所影响的行数为 7 行)
*/