在这里,我们将给大家分享关于如果参数为null,则SQL忽略WHERE的一部分的知识,让您更了解参数null为空的本质,同时也会涉及到如何更有效地ajax–AngularXhr发布对Asp.NetWe
在这里,我们将给大家分享关于如果参数为null,则SQL忽略WHERE的一部分的知识,让您更了解参数null为空的本质,同时也会涉及到如何更有效地ajax – Angular Xhr发布对Asp.Net Web API请求的结果参数为null、mysql – 当一列为NULL时带有条件的WHERE语句、MySQL-如果column为null,则从另一个表中检索值、MySQL左连接遇到where条件筛选B表字段为null时筛选不出来,也就是null丢失,的内容。
本文目录一览:- 如果参数为null,则SQL忽略WHERE的一部分(参数null为空)
- ajax – Angular Xhr发布对Asp.Net Web API请求的结果参数为null
- mysql – 当一列为NULL时带有条件的WHERE语句
- MySQL-如果column为null,则从另一个表中检索值
- MySQL左连接遇到where条件筛选B表字段为null时筛选不出来,也就是null丢失,
如果参数为null,则SQL忽略WHERE的一部分(参数null为空)
我有一个存储过程,可根据4个参数从表中获取信息。
我想基于参数获取值,但是如果参数为NULL,则不会检查该参数。因此,如果所有4个参数都为null,则将显示整个表。
这是我的SP(如您所见,这仅适用于1个参数atm):
CREATE PROCEDURE myProcedure
@Param1 nvarchar(50),@Param2 nvarchar(50),@Param3 nvarchar(50),@Param4 nvarchar(50)
AS
BEGIN
IF(@Param1 IS NULL)
BEGIN
SELECT Id,col1,col2,col3,col4 FROM myTable
END
ELSE
BEGIN
SELECT Id,col4 FROM myTable WHERE col1 LIKE @Param1+'%'
END
END
有什么方法可以做到, 而 不必IF
为每种可能的组合都加一个(15个IF)?
ajax – Angular Xhr发布对Asp.Net Web API请求的结果参数为null
我的角色代码:
$http({ method: 'POST',url: '/api/Contents',data: "value=foobar",headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }). success(function(data) { }). error(function(data,status,headers,config) { });
我也试过json(Json是我最想要的):
$http({ method: 'POST',data: { "foo": "bar","foo2": "bar2" },headers: { 'Content-Type': 'application/json'} }). success(function(data) { }). error(function(data,config) { });
我的(非常简单)Controller方法如下所示:
public void Post([FromBody]string value) { //But Value is NULL!!!!!! }
以下是我从Chrome中删除的请求标题中的一些值(我认为可能很有趣:
>请求方法:POST
>状态代码:204无内容
>接受:application / json,text / plain,/
>内容类型:application / x-www-form-urlencoded
> X-Requested-With:XMLHttpRequest
>表单Dataview sourceview URL编码
>价值:foobar
>服务器:Microsoft-IIS / 8.0
> X-AspNet-版本:4.0.30319
我错过了什么?
解决方法
$http({ method: 'POST',data: "=foobar",headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function(data) { }).error(function(data,config) { });
注意= foobar数据参数.在这种情况下,您不应指定参数名称.是的,我知道,不要问.
你可以阅读更多关于how model binding in the Web API works
.如果你像我一样,发现这绝对疯了,你可以考虑使用ServiceStack
.
或者,您可以使用视图模型:
public class ContentsModel { public string Value { get; set; } }
然后让控制器操作将视图模型作为参数:
public void Post(ContentsModel model) { }
现在您可以发送正常的JSON请求:
$http({ method: 'POST',data: JSON.stringify({ "value": "the value" }),headers: { 'Content-Type': 'application/json' } }).success(function(data) { }).error(function(data,config) { });
另请注意,如果要发送JSON,则需要使用JSON.stringify方法将javascript对象转换为JSON字符串.
mysql – 当一列为NULL时带有条件的WHERE语句
让我说我有
ID | Column 1 | Column 2
2 | NULL | "a"
3 | "b" | NULL
4 | "c" | "c"
我想写的是:
SELECT ID FROM table,AnotherTable
WHERE (Table.Column1 = AnotherTable.Column IF Table.Column1 IS NOT NULL
OR Table.Column2 = AnotherTable.Column IF Table.Column2 IS NOT NULL)
编辑:我也添加了案例IF Table.Column1 IS NOT NULL和Table.Column2 IS NOT NULL,然后选择Table.Column2 = AnotherTable.Column
COALESCE()
功能:
SELECT ID
FROM table JOIN AnotherTable
ON AnotherTable.Column = COALESCE(table.Column1,table.Column2)
MySQL-如果column为null,则从另一个表中检索值
假设我有一个表设置,其中包含一些值,包括名称,ID和引用另一个表的ID的外键。名称可以为空。当我从该表中选择所有记录时,如果名称不为null,我想获取名称。如果是这样,我想获取外键引用的记录的名称。我可以根据需要修改数据库结构,也可以简单地更改查询。我有什么选择?
MySQL左连接遇到where条件筛选B表字段为null时筛选不出来,也就是null丢失,
背景为: A表为区域表,B表初始为空表, 需要用A表左连B表,;连接条件为A表的区域ID=B表的区域ID
左连之后全表查是没有问题的,如图:
但是加上B表的条件就会丢失null的数据,如图:
最后通过子查询解决问题
也试过网上说的连接条件用on..and 不行.
今天关于如果参数为null,则SQL忽略WHERE的一部分和参数null为空的分享就到这里,希望大家有所收获,若想了解更多关于ajax – Angular Xhr发布对Asp.Net Web API请求的结果参数为null、mysql – 当一列为NULL时带有条件的WHERE语句、MySQL-如果column为null,则从另一个表中检索值、MySQL左连接遇到where条件筛选B表字段为null时筛选不出来,也就是null丢失,等相关知识,可以在本站进行查询。
本文标签: