34,587
社区成员
发帖
与我相关
我的任务
分享
if exists(select * from sysobjects where xtype='p' and name='Getalltest')
drop proc Getalltest
---测试
if object_id('Getalltest') is not null
begin
select 'proc存在'
drop proc Getalltest
end
else
select 'proc不存在'
--
go
create procedure Getalltest
as
---测试
if object_id('t') is not null
begin
select '表存在'
drop table t
end
else
select '表不存在'
go
create table t (coding varchar(20) not null,a int)
--不好意思,最近有点忙!收到你的消息都不太好回
CREATE TABLE T
(
id INT,
n1 VARCHAR(50),
n2 VARCHAR(50)
)
INSERT INTO T
SELECT 1,'u/L ¦b/L ¦c/s ¦i/j','0.1 ¦5.2 ¦2007-10-10 ¦20 ' UNION ALL
SELECT 2,'b/r ¦d/r','5.6 ¦7.5' UNION ALL
SELECT 3,'f/s ¦d/s','5.6 ¦5.6'
SELECT TOP 50 ID=IDENTITY(INT,1,1) INTO # FROM SYSOBJECTS A,SYSOBJECTS B
DECLARE @sql VARCHAR(8000)
SET @sql = ''
SELECT T_ID =IDENTITY(INT,1,1),A.ID,S=SUBSTRING(n1,b.id,CHARINDEX('¦',n1+'¦',b.id)-b.id)
INTO #1
FROM
(SELECT ID,N1=REPLACE(n1,' ',''),n2 FROM T) A, # B
WHERE B.id <= LEN(n1+'¦') AND CHARINDEX('¦','¦'+n1,b.id) =b.id
ORDER BY A.ID,B.ID
SELECT T_ID =IDENTITY(INT,1,1),n1,Value=SUBSTRING(n2,b.id,CHARINDEX('¦',n2+'¦',b.id)-b.id)
INTO #2
FROM
(SELECT ID,N1=REPLACE(n1,' ',''),n2 FROM T) A, # B
WHERE B.id <=LEN(n2+'¦') AND CHARINDEX('¦','¦'+n2,b.id) = b.id
ORDER BY A.ID,B.ID
SELECT @sql = @sql+',['+s+'] = CAST(ISNULL(MAX(CASE WHEN S = '''+S+'''
THEN Value END),'''') AS VARCHAR(10))'
FROM #1 GROUP BY S
SET @sql = 'SELECT '+STUFF(@sql,1,1,'')
EXEC(@sql+'
FROM #1 A LEFT JOIN #2 B ON A.T_ID = B.T_ID
GROUP BY A.ID ORDER BY A.ID')
DROP TABLE #,#1,#2
DROP TABLE T