如何在SQL Server中逐行循环记录表?

时间:2016-06-18 16:54:01

标签: sql sql-server-2008

以下是我的表格:

表:

ID   Name   category
--------------------
1    test   1
2    test   2
3    test1  3
4    test1  4

类别:

ID  Name    
------------
1  simple   
2  complex
3  ordinory
4  ex-ordinory

在我的表中有'名称'列。每个名称都有一个类别。

我需要明智地获取所有类别的名称。

select * 
from table
inner join category ca on ca.id = table.category
where name = test 
  and category = 1

此查询仅返回name = testcategory = 1条记录

但我需要获取所有类别的名称。

我想要逐行循环所有记录。请建议可行的方法来进行此操作。

1 个答案:

答案 0 :(得分:0)

这是你要找的吗?

<强> CODE

CREATE TABLE TABLE_NAME (ID INT IDENTITY, NAME VARCHAR(25), CATEGORY INT)
INSERT INTO TABLE_NAME
VALUES ('test',1),('test',2),('test1',3),('test1',4)

CREATE TABLE CATEGORY (ID INT IDENTITY, NAME VARCHAR(25))
INSERT INTO CATEGORY
VALUES ('Simple'),('Complex'),('Ordinary'),('Ex-Ordinary')

SELECT DISTINCT 
         T.NAME
        ,C.NAME
FROM TABLE_NAME T
JOIN CATEGORY C
ON C.ID = T.CATEGORY

<强> RESULT

TABLE_NAME  CATEGORY_NAME
test           Complex
test           Simple
test1        Ex-Ordinary
test1         Ordinary