我想这对于任何了解 SQL 编程的人来说都是一件非常容易的事情......
这是我对数据库执行的代码:
DECLARE @maxCounter int
-- Used to get the maximum bound number for my loop, basically what is the highest number of records. Tested, seems to work as expected.
SET @maxCounter = (SELECT TOP 1 COUNT(SN)
FROM TestResults
WHERE Type = 'EX'
GROUP BY SN
ORDER BY COUNT(SN) DESC)
CREATE TABLE #Info
(
DLoc VARCHAR(500),
DCode VARCHAR(500),
Dobs VARCHAR(500)
)
DECLARE @counter INT
SET @counter = 1
WHILE @counter <= @maxCounter
BEGIN
INSERT INTO #Info (DLoc)
VALUES ('Location_' + CAST(@counter AS VARCHAR(16)))
INSERT INTO #Info (DCode)
VALUES ('Code_' + CAST(@counter AS VARCHAR(16)))
INSERT INTO #Info (Dobs)
VALUES ('Observation_' + CAST(@counter AS VARCHAR(16)))
SET @counter = @counter + 1
END
SELECT * FROM #Info;
DROP TABLE #Info;
如果您在代码中看到一些奇怪的东西,那是因为我是一个完全的初学者并且不知道更好。
while 循环的预期输出:
+------------+---------+---------------+
| defLoc | defCode | obs |
+------------+---------+---------------+
| Location_1 | Code_1 | Observation_1 |
| Location_2 | Code_2 | Observation_2 |
| Location_3 | Code_3 | Observation_3 |
+------------+---------+---------------+
意外的输出结果:
defLoc | defCode | obs |
-----------------+-------------+---------------|
Location_1 | | |
| Code_1 | |
| | Observation_1 |
Location_2 | | |
| Code_2 | |
| | Observation_2 |
Location_3 | | |
| Code_3 | |
| | Observation_3 |
我不知道空单元格是从哪里来的......