我有下表(表ConfigValue),其中声明了功能和选项(可见的零表示该功能的选项不可见,一个表示该选项可见。对于值,零表示选项未被选中,一个选项意味着选择了一个选项):
Feature_ID | OptionValue | value | visible
---------- | ----------- | ----- | -------
300 | 1 | 0 | 1
310 | 2 | 0 | 1
我想使用下表(表OptionValue)来创建选项之间的依赖关系。在这种情况下,当选择来自特征300的选项1(即值= 1)时,来自特征310的选项2不应该是可见的(即,可见= 0)。另一方面,当未选择来自特征300的选项1时,应该可以看到来自特征310的选项2。
Feature_ID_1 | OptionValue_1 | Feature_ID_2 | OptionValue_2 |
------------ | ------------- | ------------ | ---------
300 | 1 | 310 | 2
我想将上述内容翻译成更新语句,但我不知道从哪里开始。
根据Squirrel的回答进行更新
以下select语句产生正确的输出
Select CF.FeatureID As Feature_ID_1,
CF.OptionValue As OptionValue_1,
CF.value AS Value_1,
CF.visible AS Visible_1,
OV.FeatureID As Feature_ID_2,
OV.OptionValue As OptionValue_2,
OV.value AS Value_2,
Case When CF.Value = 1 Then 0 Else 1 End As Visible_2
From [VlastuinTEST].[dbo].[ConfigValue] as CF
Cross Join [VlastuinTEST].[dbo].[ConfigValue] as OV
Where CF.FeatureID = 300
And OV.FeatureID = 310
当选择了来自要素300的选项1时,从要素310返回选项2的可见为0。但是,我确实需要第二个表,因为我想用选择其他选项时不应显示的选项组合填充此表(因此在OptionValue中feature_ID_1和OptionValue_1应表示ConfigValue中的Feature_ID和OptionValue,其中value为1,而Feature_ID_2和OptionValue_2应表示ConfigValue中的Feature_ID和OptionValue,其中visible应更新为0)。
在这种情况下,我如何仍然使用OptionValue表?另外,需要更改哪些内容才能对选择查询进行更新查询?
答案 0 :(得分:0)
这就是你想要的吗?
Select CF.FeatureID As Feature_ID_1,
CF.OptionValue As OptionValue_1,
OV.FeatureID As Feature_ID_2,
Case When CF.OptionValue = 1 Then 0 Else 1 End As OptionValue_2
From [VlastuinTEST].[dbo].[ConfigValue] as CF
Cross Join [VlastuinTEST].[dbo].[ConfigValue] as OV
Where CF.FeatureID = 300
And OV.FeatureID = 310