主题似乎令人困惑,就像我对如何解决手头的问题感到困惑。我有一个带有数据的表TESTCODES
testcode1 testdesc1 testcode2 testdesc2 testcode3 testdesc3
SB00001 CBC 1234-1 CBC Panel NULL NULL
NULL NULL 1234-4 XRAY NULL NULL
SB00002 'Culture B' 1234-2 Blood Cltr 989889 Blood Cnt
我有一个查询从这些字段中获取TestCode:
SELECT COALESCE(TestCode1, TestCode2, TestCode3, '') TestCode FROM SOMEORDER
coalesce正常工作并按预期返回数据。但是,我希望结果显示它选择了哪个测试代码。例如:
TestCode
SB00001 - TestCode1
1234-4 - TestCode2
SB00002 - TestCode1
我可以使用COALESCE本身或者我需要更改此查询以使用CASE语句吗?
答案 0 :(得分:1)
看起来您想要将字段名称连接到实际值。您可以在coalesce()
:
SELECT COALESCE(TestCode1 + ' - TestCode1',
TestCode2 + ' - TestCode2',
TestCode3 + ' - TestCode3',
''
) TestCode
FROM SOMEORDER;
连接后NULL
的值仍为NULL
。
答案 1 :(得分:0)
我认为您可以将字段与字段名称连接起来:
SELECT COALESCE(TestCode1 + ' - TestCode1', TestCode2 + ' - TestCode2',
TestCode3 + ' - TestCode3', '') TestCode
FROM SOMEORDER
答案 2 :(得分:0)
试试这个:
SELECT
COALESCE('T1: '+TestCode1, 'T2: '+TestCode2, ' T3: '+TestCode3, '<none>') TestCode
FROM SOMEORDER