SQL:where子句具有优先级

时间:2018-05-15 07:00:10

标签: sql

我想用where子句写两个条件的select查询。

IO

如果找到同时包含AAAA和null的记录,我想优先考虑AAAA。 怎么做?

3 个答案:

答案 0 :(得分:1)

仅当相应的AAAA不存在时才考虑'null'条目:

WHERE ... OR(column1为空且不存在(select * from table1 as inner where inner.user_name = outer.user_name and inner.column1 ='AAAA'))

使用EXCEPT的变化将更接近RA式思维,但可能会因为你在这里使用NULL而失败。

修改

(只有在需要更多属性而不仅仅是user_name的情况下才能记住这个答案,并且这些属性必须精确匹配为结果集保留的行。)

答案 1 :(得分:0)

只是

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body>
<div id="Startseite">
	<div class="container CentermiddleStart">
		<div class="row">
			<div class="col-12">
				<h1>Header</h1>
				<h3>Subheader</h3>
			</div>
		</div>
		<div class="row">
			<div class="col-xs-6" id="button-right">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
			<div class="col-xs-6" id="button-left">
				<a href="#" class="btn btn-default btn-lg">Get started</a>
			</div>
		</div>
	</div>
</div>
</body>

答案 2 :(得分:0)

如果找到同时包含AAAA和null的记录,那么&#34;是什么意思。&#34;优先考虑AAAA&#34;?

一种解释是返回AAAA记录。如果不存在,则选择NULL

select distinct user_name
from table1
where column1 = AAAA
union all
select distinct user_name
from table1
where column1 is null and (not exists select 1 from table1 where column1 = AAAA);