0
我是使用SQL Server的新手,我試圖將此查詢轉換爲我可以在SQL Server中使用的東西。我一直在使用Google搜索來找到正確的結構,但我似乎無法看到任何涉及「用戶定義變量」的內容。使用用戶定義的變量將MySQL轉換爲TSQL
任何幫助,將不勝感激。
什麼,我想實現概述...
我有6列,我需要獲得6列的中位數,但只有在有至少4個響應。該字段中的可能值爲1-5,其中0爲無響應。
SELECT
GCAID,
@countOfValuesGSS1 := (
CASE
WHEN CEQ106 BETWEEN 1 AND 5 THEN 1 ELSE 0 END +
CASE
WHEN CEQ114 BETWEEN 1 AND 5 THEN 1 ELSE 0 END +
CASE
WHEN CEQ123 BETWEEN 1 AND 5 THEN 1 ELSE 0 END +
CASE
WHEN CEQ132 BETWEEN 1 AND 5 THEN 1 ELSE 0 END +
CASE
WHEN CEQ142 BETWEEN 1 AND 5 THEN 1 ELSE 0 END +
CASE WHEN CEQ143 BETWEEN 1 AND 5 THEN 1 ELSE 0 END),
@sumOfValuesGSS1 := (
CASE
WHEN CEQ106 BETWEEN 1 AND 5 THEN CEQ106 ELSE 0 END +
CASE
WHEN CEQ114 BETWEEN 1 AND 5 THEN CEQ114 ELSE 0 END +
CASE
WHEN CEQ123 BETWEEN 1 AND 5 THEN CEQ123 ELSE 0 END +
CASE
WHEN CEQ132 BETWEEN 1 AND 5 THEN CEQ132 ELSE 0 END +
CASE
WHEN CEQ142 BETWEEN 1 AND 5 THEN CEQ142 ELSE 0 END +
CASE
WHEN CEQ143 BETWEEN 1 AND 5 THEN CEQ143 ELSE 0 END),
if(@countOfValuesGSS1 >= 4, ROUND((@sumOfValuesGSS1/@countOfValuesGSS1),2), NULL) AS b_GSSMAJ1,
MAJ1,
FROM
v_ags_all
而不是「@ countOfValuesGSS1:=」使用「countOfValuesGSS1」並將IF替換爲case語句p – 2014-09-25 07:33:08