来自一个表的SQL一个select语句将数据存储在局部变量

时间:2016-11-18 08:23:41

标签: sql sql-server sql-server-2008

大家好,我正在寻找一种方法,将一个表中的数据存储在2个局部变量中,在一个选择语句中

DECLARE @TITLE NVARCHAR()
DECLARE @DESCRIPTION NVARCHAR()
  

所以结构是这样的

     

experienceID(int)| title(string)| description(string)|用户id

  2                  asd                          1
  4                  dqd           asdsad         1
  5                  09                           2
  7                  456                          2

我想要做的是检查用户是否有任何经验,如果是这样存储它,同样选择我想检查用户是否有任何与任何体验相关的描述,并将其存储在变量中

结果将是:

@TITLE =如果userId = X有经验,则来自title列的任何值

@DESCRIPTION =将是第一个非空字符串的值

EX:对于userId = 1,有经验,因此会有标题和说明的数据

EX:对于userId = 2,有经验,但只有标题有数据

EX:对于userId = 3,没有经验,所以我没有任何数据

对于我需要将结果存储在2个局部变量中的所有情况,我不在乎它们是否有价值

谢谢。

3 个答案:

答案 0 :(得分:4)

SELECT @TITLE = MIN(NULLIF(TITLE,'')), @DESCRIPTION = MIN(NULLIF(DESCRIPTION,''))
FROM dbo.Experiences
WHERE UserId = @UserId 
GROUP BY UserId 

答案 1 :(得分:0)

DECLARE @VAR
DECLARE @VAR2

    SET @VAR = SELECT DESCRIPTION FROM SOMETHING WHERE DESCRIPTION NOT NULL AND DESCRIPTION NOT LIKE '' AND userid = x
    SET @VAR2 = SELECT ExperienceId FROM SOMETHING where userid = x

如果您有连接到体验表内部的用户表,请在experienceid

上加入

根据您的需要调整查询。

答案 2 :(得分:0)

DECLARE @TITLE NVARCHAR(20)
DECLARE @DESCRIPTION NVARCHAR(20)

SELECT @TITLE = title, @DESCRIPTION = description
from mytable
where description is not null

SELECT @TITLE, @DESCRIPTION