我有桌子(医疗发票)加上5个外键
每行都有这些FK的一个值,如下所示:
ID PDL_ID LTT_ID MSF_ID RIY_ID ORN_ID AMOUNT
1 null 1 null null null 20.00
2 null null 1 null null 15.00
3 1 null null null null 10.00
4 null null 3 null null 18.00
我希望结果像这样
col1(IDs) col2(values) col3(Amount)
PDL_ID 1 10
LTT_ID 1 20
MSF_ID 1 15
MSF_ID 3 18
答案 0 :(得分:0)
一种简单的方法是使用 public class ImageConverter: IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
MemoryStream ms = new MemoryStream();
((System.Drawing.Bitmap)value).Save(ms, System.Drawing.Imaging.ImageFormat.Png);
BitmapImage image = new BitmapImage();
image.BeginInit();
ms.Seek(0, SeekOrigin.Begin);
image.StreamSource = ms;
image.EndInit();
return image;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
:
union all
如果您有大量的数据,还有其他方法不需要读取每列的表格。
答案 1 :(得分:0)
在Oracle 11g及更高版本中,您可以使用运算符unpivot
:
select col1, col2, amount from invoice
unpivot (col2 for col1 in ("PDL_ID", "LTT_ID", "MSF_ID", "RIY_ID", "ORN_ID"))