Sql ,osiguranje.skup_os q,osiguranje.st_pol s 式中(p.proizvod=q.sifra和p.broj=s.broj和XUvjet,s.vs='DK'和s.stopa0) 或者(p.proizvod=q.sifra和p.broj=s.broj和XUvjet以及s.vs='PK'和s.stopa0)

Sql ,osiguranje.skup_os q,osiguranje.st_pol s 式中(p.proizvod=q.sifra和p.broj=s.broj和XUvjet,s.vs='DK'和s.stopa0) 或者(p.proizvod=q.sifra和p.broj=s.broj和XUvjet以及s.vs='PK'和s.stopa0),sql,sql-server,query-optimization,Sql,Sql Server,Query Optimization,我希望这有帮助。对于WHERE子句中的s.vs,您可以轻松使用in运算符: WHERE s.vs IN ['PK', 'DK', 'PO', ...] 对于SELECT子句中的gr\u red,可以使用CASE-WHEN运算符: SELECT ' ' AS nac_prem, gr_red = CASE WHEN s.vs='PK' THEN 0 WHEN XUvjet AND s.vs='PO' THEN 1 ELSE 1

我希望这有帮助。

对于WHERE子句中的
s.vs
,您可以轻松使用in运算符:

WHERE s.vs IN ['PK', 'DK', 'PO', ...]
对于SELECT子句中的
gr\u red
,可以使用CASE-WHEN运算符:

SELECT  ' ' AS nac_prem, gr_red =
      CASE
         WHEN s.vs='PK' THEN 0
         WHEN  XUvjet AND s.vs='PO' THEN 1
         ELSE 1
      END,

显然,您可以在此处向WHEN子句添加更多逻辑,使其适合您的查询逻辑。

对于WHERE子句中的
s.vs
,您可以轻松使用in运算符:

WHERE s.vs IN ['PK', 'DK', 'PO', ...]
对于SELECT子句中的
gr\u red
,可以使用CASE-WHEN运算符:

SELECT  ' ' AS nac_prem, gr_red =
      CASE
         WHEN s.vs='PK' THEN 0
         WHEN  XUvjet AND s.vs='PO' THEN 1
         ELSE 1
      END,

显然,您可以在此处向WHEN子句添加更多逻辑,使其符合查询的逻辑。

谢谢您的帮助,但如果仔细查看,您会发现第4个SELECT部分位于另一个名为st_pril而不是st_pol的表中。但这看起来很有趣:)@Levidoom——啊,是的——我现在注意到还有第三个。您可以使用相同的方法,但看起来您需要3个查询和2个联合。@Levidoom-我更新了此解决方案以包括所有三个表组合。再次感谢,但是。。。(我开始讨厌“但是”这个词)如果你考虑到所有选择部分的所有差异,这个方法将变成原始查询:(@Levidoom-I;我担心,鉴于每个部分都是不同表的组合,并且您希望附加每个部分的结果,您将不得不以这种方式使用Union。感谢您的帮助,但是如果您仔细查看,您将看到第四个SELECT部分在另一个名为st_pril的表中,而不是st_pol。但是这个looks非常有趣:)@Levidoom-啊,是的-我现在注意到还有第三个。您可以使用相同的方法,但看起来您需要3个查询和2个联合。@Levidoom-我更新了此解决方案以包括所有三个表组合。再次感谢,但是。。。(我开始讨厌“但是”这个词)如果你考虑到所有选择部分的所有差异,这个方法将变成原始查询:(@Levidoom-I;我担心,鉴于每个部分都是不同表的组合,并且您希望附加每个部分的结果,因此必须以这种方式使用Union。