我希望在sql表中创建一个列,其中包含符合条件的字段的列名(包含tid值1的列)这里第一个表给出了我要处理的sql表。下面的一个给出了我期望的结果
c9qzyr3d1#
您尝试创建的另外两个列没有任何尚未存在或无法计算的新信息。这两列可以看作是一个函数的结果,函数接受了原来的5列,并给出了一些结果。你可以看看虚拟列。你的用例应该用它来解决。更具体地说,如果你正在使用postgres,请参阅这个和这个。这是mysql的。
nx7onnlm2#
您可以使用 cross apply 和过滤器:
cross apply
select t.*, v.* from t outer apply (values ('field1', field1), ('field2', field2), ('field3', field3), ('none', 0) ) v(matchedfield, counter) where (matchedfield = 'none' and field1 + field2 + field3 = 0) or (matchedfield <> 'none' and field1 + field2 + field3 > 0) ;
2条答案
按热度按时间c9qzyr3d1#
您尝试创建的另外两个列没有任何尚未存在或无法计算的新信息。这两列可以看作是一个函数的结果,函数接受了原来的5列,并给出了一些结果。你可以看看虚拟列。你的用例应该用它来解决。
更具体地说,如果你正在使用postgres,请参阅这个和这个。
这是mysql的。
nx7onnlm2#
您可以使用
cross apply
和过滤器: