问题描述
|
我有一个视图,它返回如下结果:
D1 D2 D3 D1_CODE D2_CODE D3_CODE
---- ---- ---- --------- --------- ---------
10.00 13.00 14.00 OD LENGTH THICKnesS
我在以下选择查询中创建了视图,
SELECT
MKT_MRL_Detail.D1,MKT_MRL_Detail.D2,MKT_MRL_Detail.D3,MAS_SizeType.D1_Code,MAS_SizeType.D2_Code,MAS_SizeType.D3_Code
FROM
MKT_MRL_Detail INNER JOIN
STR_Item ON STR_Item.ItemID = MKT_MRL_Detail.ItemID INNER JOIN
MAS_SizeType ON MAS_SizeType.SizeTypeID = STR_Item.SizeTypeID
我已返回基于两个表的内部联接的视图。
上面的视图仅返回一行。在这里,我要查找哪个列的值为'LENGTH \':
我正在使用sql Server2005。请问有人可以帮忙吗?
解决方法
我最好的建议是重新编写视图(甚至可能是数据库),因为这不是一个很好的设计。但是,我怀疑这是可能的。如果不是,这是我的建议:
SELECT *
FROM (
SELECT D1 AS Value,D1_CODE AS Code
FROM view
UNION ALL
SELECT D2,D2_CODE
FROM view
UNION ALL
SELECT D3,D3_CODE
FROM view
) AS myInfo
WHERE Code=\'LENGTH\'
它虽然不漂亮,但可以完成工作。