2016-11-18 63 views
3

嗨,大家好我正在尋找一種方式來從一個表存儲在2個局部變量數據,一個select語句在一個select語句SQL從一個表的數據存儲在本地變量

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

所以結構是這樣的

experienceID(int)|標題(字符串)|描述(字符串)|用戶id

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

我想要做的是檢查用戶是否有任何經驗,如果是存儲,也同樣選擇我想檢查用戶是否有任何經驗,也關聯的描述將它存儲在一個變量中。

那麼結果將是:

@TITLE =從標題欄的任何值,如果用戶id = X有經驗

@DESCRIPTION =將是第一個第一個值不爲空字符串

EX :對於userId = 1有經驗,所以將會有標題和描述的數據

EX:對於userId = 2有經驗但只有標題有數據

EX:對於userId = 3沒有經驗,所以我沒有任何數據

對於我需要將結果存儲在2個局部變量中的所有情況,我不在乎他們是否有值

謝謝。

+1

請出示您的全表結構,一些樣本數據,理想輸出你想要的,除非你認爲你的描述就足夠了。 –

+0

你想要這些在正常變量或表變量? –

回答

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

@RaduGheorghiu:爲什麼?我期望這張表存儲用戶體驗,因此可能包含每個用戶的多個記錄。 OP想合併兩個共享相同用戶標識的記錄,但第一個包含(非空)標題和另一個(非空)描述。 –

+0

誤讀了問題。 –

+0

太好了,非常感謝 – Remus

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

扭捏查詢您的需要的用戶表。

+0

你最終需要單引號(''),而不是雙引號(「」) –

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

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

SELECT @TITLE, @DESCRIPTION 
相關問題