簡體   English   中英

如何使用case語句為后續子查詢聲明局部變量?

[英]How to use case statement to declare a local variable for a subsequent subquery?

是否可以根據具體情況聲明局部變量,然后觸發一個公共子查詢?

偽代碼:

SELECT 
    CASE
      WHEN TABLE.TYPE = 'STUDENT'  variable  = "UNIVERSITY"
      WHEN TABLE.TYPE = 'EMPLOYEE' variable = "EMPLOYER"
     (Some big query here it has a common joins / groupings but the variable changes)
   END AS NAME
FROM TABLE

尋找SQL Server解決方案。

場景是這樣的 - 我有一個列出一些成員信息的查詢。 現在我需要為現有查詢獲取一些附錄數據 - 我的意思是結果集不會改變。 我實際上可以加入但是我必須過濾掉很多東西 - 這有意義嗎? 想象一下,我正在顯示表格中的所有成員,有人要求我顯示大學名稱或雇主姓名。 最大的問題是,會員可以擁有一所以上的大學 - 同樣適用於雇主。 在這種情況下,連接的性能是否真的很差? 因為有很多一對多的東西。 還請注意我最終只顯示10條記錄作為分頁的一部分所以我認為我應該做一個案例陳述。

DECLARE @variable  varchar(10)

SELECT  @variable = 
CASE
  WHEN t.TYPE = 'STUDENT'  THEN 'UNIVERSITY'
  WHEN t.TYPE = 'EMPLOYEE' THEN 'EMPLOYER'
  ELSE 'Undefined'
END
FROM TableName t

MSDN - SELECT @local_variable

如果SELECT語句返回多個值,則為變量分配返回的最后一個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM