我有下面的表格,想把單位都填充上,序號2-4的用A,序號6--8用b,這種規律。請問在查詢分析器中陳述句如何寫
序號 單位 姓名
1 A
2 王
3 張
4 李
5 b
6 王1
7 張1
8 李1
9 c
10 王2
11 張2
12 李2
謝謝
uj5u.com熱心網友回復:
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL
DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[序號] INT
,[單位] NVARCHAR(10)
,[姓名] NVARCHAR(10)
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'1',N'A',NULL)
INSERT INTO dbo.[t] VALUES(N'2',NULL,N'王')
INSERT INTO dbo.[t] VALUES(N'3',NULL,N'張')
INSERT INTO dbo.[t] VALUES(N'4',NULL,N'李')
INSERT INTO dbo.[t] VALUES(N'5',N'b',NULL)
INSERT INTO dbo.[t] VALUES(N'6',NULL,N'王1')
INSERT INTO dbo.[t] VALUES(N'7',NULL,N'張1')
INSERT INTO dbo.[t] VALUES(N'8',NULL,N'李1')
INSERT INTO dbo.[t] VALUES(N'9',N'c',NULL)
INSERT INTO dbo.[t] VALUES(N'10',NULL,N'王2')
INSERT INTO dbo.[t] VALUES(N'11',NULL,N'張2')
INSERT INTO dbo.[t] VALUES(N'12',NULL,N'李2')
GO
------ 以上為測驗表及測驗資料 -------
SELECT 序號,
CASE
WHEN 單位 > '' THEN 單位
ELSE (
SELECT TOP 1 單位
FROM t AS b
WHERE b.[序號] < a.[序號]
AND b.[單位] > ''
ORDER BY
b.[序號] DESC
)
END AS 單位,
a.[姓名]
FROM t AS a
/*
序號 單位 姓名
----------- ---------- ----------
1 A NULL
2 A 王
3 A 張
4 A 李
5 b NULL
6 b 王1
7 b 張1
8 b 李1
9 c NULL
10 c 王2
11 c 張2
12 c 李2
*/
uj5u.com熱心網友回復:
set nocount ondeclare @tb as table([序號] INT, [單位] varchar(10),[姓名] NVARCHAR(10) )
INSERT INTO @tb(序號,單位,姓名) VALUES(N'1',N'A',NULL)
INSERT INTO @tb(序號,單位,姓名) VALUES(N'2',NULL,N'王')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'3',NULL,N'張')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'4',NULL,N'李')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'5',N'b',NULL)
INSERT INTO @tb(序號,單位,姓名) VALUES(N'6',NULL,N'王1')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'7',NULL,N'張1')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'8',NULL,N'李1')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'9',N'c',NULL)
INSERT INTO @tb(序號,單位,姓名) VALUES(N'10',NULL,N'王2')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'11',NULL,N'張2')
INSERT INTO @tb(序號,單位,姓名) VALUES(N'12',NULL,N'李2')
declare @Unit varchar(100) = ''
update @tb set @Unit=單位=isnull(單位, @Unit)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/64857.html
標籤:基礎類
上一篇:求助,sql安裝錯誤
下一篇:各位大神誰能幫我一下
