我有一个包含23个字段的数据库。在23我需要操纵其中的8个,我们称之为F1,F2,F3 ...... F8(用户名)。
对于8个字段中的每个字段,用户可以限制它们之间的信息。例如,用户只想查看F1中从字母A到J开头的信息加上他们可以指定8个字段之间的任何排序顺序,这意味着他们希望首先按F8然后按F6然后按F2等排序。这就是它的样子:
A F2Upper F3Upper ... F8Upper
J F2Lower F3Lower ... F8Lower
Order1 Order2 Order3 ... Order8
F1 F2 F3 F8(UserName)
我已经有了一个有效的SQL查询。最近该公司增加了一项新标准。除了所有数据分隔之外,他们还希望所有显示的信息都包含F4中的'~Prio'和F8(用户名),而不管分隔符内的任何内容。
所以我为2个查询创建了一个UNION语句,但它无法更新。我需要数据可更新。最好的方法是什么?所以我的查询是这样的:
Select *
From tblTest
WHERE F4 Like '~Prio'
AND (F8 = CurrentUser or F8 = Location)
UNION
Select *
From tblTest
WHERE (F1 >= F1Upper AND F1 <= F1Lower)
AND (F2 >= F2Upper AND F2 <= F2Lower)..
.
AND (F8 >= F8Upper AND F8 <= F8Lower)
ORDER By Order1, Order2,
Order3 .. .
Order8
答案 0 :(得分:0)
我认为你应该能够对这样的标准进行分组:
Select *
From tblTest
WHERE ((F1 >= F1Upper AND F1 <= F1Lower) AND
(F2 >= F2Upper AND F2 <= F2Lower)..
. AND (F8 >= F8Upper AND F8 <= F8Lower))
or (F4 Like '~Prio' AND (F8 = CurrentUser or F8 = Location))
ORDER By Order1, Order2,
Order 3 .. .
Order 8