這是從下面的查詢與id
和Field1
輸出通過Field4
存儲於命名爲YourTable表。
id Field1 Field2 Field3 Field4 NewField
-- -------- -------- -------- -------- --------------
1 positive negative negative positive Field1, Field4
2 negative positive positive negative Field2, Field3
3 negative negative negative positive Field4
4 positive negative negative negative Field1
SELECT
sub.id,
sub.Field1,
sub.Field2,
sub.Field3,
sub.Field4,
IIf
(
Right(sub.raw_string,2)=', ',
Left(sub.raw_string, Len(sub.raw_string) -2),
sub.raw_string
) AS NewField
FROM
(
SELECT
y.id,
y.Field1,
y.Field2,
y.Field3,
y.Field4,
(IIf(y.Field1='positive','Field1',Null) + ', ')
& (IIf(y.Field2='positive','Field2',Null) + ', ')
& (IIf(y.Field3='positive','Field3',Null) + ', ')
& IIf(y.Field4='positive','Field4',Null)
AS raw_string
FROM YourTable AS y
) AS sub;
感謝HansUp。這很快,效果很好。你救了我的一天。只是想知道,我有大約20個類似的領域,IIf命令是否會工作,因爲我讀到它對命令數量或執行時間有限制。或者我必須做一個替代方案。再次感謝 – abdullahgz
我認爲嵌套的'IIf'表達式是有限制的,但是這個查詢不會嵌套它們,所以這個限制不適用。它應該在延伸到20個領域時仍然有效,但我不知道它是否足夠快。 – HansUp
謝謝,我現在明白了,我會試試看 – abdullahgz