标签: isnull

可以在where语句中使用isnull导致使用索引出现问题吗?

我有如下查询:

SELECT t1.v3, t2.v2
FROM t1
INNER JOIN t2
ON t1.v1 = t2.v1
WHERE ISNULL(t1.DeleteFlag,'N') = 'N'
Run Code Online (Sandbox Code Playgroud)

我有一个索引,我认为应该导致该= 'N'部分的索引搜索,但我看到一个非常昂贵的索引扫描.索引是否可能搞乱索引的正确使用?在列上只有一些可能的值(如DeleteFlag意志)的索引是否有意义?

sql sql-server isnull

2
推荐指数
3
解决办法
3172
查看次数

ISNULL等效于空字段

是否有类似ISNULL()或COALESCE()的东西,但不是检查空值而是空值.

例如:

  SELECT cu.last_name, cu.first_name, cu.email, hu.email FROM 
 (SELECT DISTINCT c.first_name, c.last_name, c.email, c.household_id, h.head_of_household_id
  FROM rd_customers c
  JOIN rd_households h ON c.household_id = h.household_id
  JOIN ad_registrations r ON r.customer_id = c.customer_id
  JOIN ad_meeting_times a ON  r.session_id = a.session_id and a.meeting_time_id = 203731) cu
  LEFT JOIN rd_customers hu ON hu.customer_id = cu.head_of_household_id
Run Code Online (Sandbox Code Playgroud)

而不是返回四列我想得到三个,而第三个假设有cu.email或hu.email的值,如果第一个是EMPTY!ISNULL和COALESCE不在这里工作我不知道为什么

sql sql-server-2005 coalesce isnull

2
推荐指数
1
解决办法
5918
查看次数

SQL Server中的ISNULL行为

根据我的理解,IsNull函数检查第一个值,如果它为null或空白,则返回下一个值.

SELECT ISNULL(1,getdate()) 
Run Code Online (Sandbox Code Playgroud)

但上述陈述给出了错误.任何人都可以帮助突出原因吗?

sql-server date isnull

2
推荐指数
1
解决办法
1853
查看次数

mysql - 像isnull()一样检查零值的函数

我正在寻找一个函数来检查列是否具有与该isnull()函数类似的值0 .

这是我到目前为止所得到的:

CONCAT(
    SUBSTRING_INDEX(
        SUBSTRING(textCol, 1, 
            LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y  %H:%i'), textCol)-1),
            '|',
             -1),       
    SUBSTRING(
        textCol,
        LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y  %H:%i'), textCol),
        IFNULL(
            LOCATE( /* this will return 0 if it's the last entry */
                '|', 
                textCol, 
                LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y  %H:%i'), textCol)
            ) - LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y  %H:%i'), textCol),
            LENGTH(textCol))))
Run Code Online (Sandbox Code Playgroud)

textCol中的数据有点像CSV文件,每列中都有另一个CSV文件.每个数据集由分隔的|每个数据集分隔&&.内部字段是名称,日期'%d.%m.%Y %H:%i'和评论.

我想提取与我所进入的某个DATETIME相对应的数据集dateCol.问题是,如果我正在寻找的那个是最后一个条目textCol,那么LOCATE(见注释)会返回0.但这会打破我,SUBSTRING所以只返回条目的前半部分.

我添加了一个ISNULL(),当然这里没有做任何事情.我想做的是有类似于ISNULL()那种类似的东西ISZERO(),就像||Perl中的运算符一样.

可能有一种更好的方式来实现我想要的.请不要犹豫告诉我.

mysql substring isnull zero

2
推荐指数
2
解决办法
9534
查看次数

如何遍历JavaScript对象并检查空值?

假设我有一个JavaScript对象:

var obj = {};
obj.computers = {};
obj.computers.favorite = "Commodore 64";
obj.computers.popular = "Apple";
Run Code Online (Sandbox Code Playgroud)

现在,我可以轻松检查null,如:

if(obj != 'undefined' && obj != null) {
    if(obj.computers != 'undefined' && obj.computers != null)) {
        .....
Run Code Online (Sandbox Code Playgroud)

如您所见,如果我需要查看是否obj.computers.favorite已设置,我必须在那里嵌套一些条件逻辑.我们的一些物体深入3,4,5级.

这是我希望能够做到的:

var fav = obj.computers.favorite || 'Unknown';
Run Code Online (Sandbox Code Playgroud)

但我意识到我需要用某种方法包装它.就像是:

var fav = getValueOrDefault(obj.computers.favorite, 'Unknown');
Run Code Online (Sandbox Code Playgroud)

建议表示赞赏.

谢谢

编辑

我检查'undefined'实际上并不是我使用的.在提出这个问题时,我只是想到了.大声笑

但我想知道,如果异常,我可以在try/catch中包装并抛出默认值吗?

function(obj, default) {
    try {
        if(obj != null) {
            return obj;
        } else {
            return default;
        }
    } catch(ex) {
        return default;
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,感谢Shusi指出冗余的变量.

javascript isnull

2
推荐指数
1
解决办法
1894
查看次数

ISNULL(Count(x),0)为null时不返回0

我有以下代码:

SELECT     FirstName, LastName,
(SELECT ISNULL(COUNT(UP1.EmailAddress), 0) AS HasEmail 
     From dbo.UserProfiles AS UP1 
     WHERE (NOT (UP1.EmailAddress IS NULL)) AND (CreatedBy = dbo.UserProfiles.UserID)
     GROUP BY CreatedBy) AS EmailEnteredCount FROM dbo.UserProfiles WHERE (IsStaff = 1)
Run Code Online (Sandbox Code Playgroud)

样本结果:

姓氏EmailEnteredCount

帐单为空

拉尔森51

佳士得30

零值

senac NULL

该代码可以正确执行,但有一个例外,当未找到任何记录而不是预期的0时,它将返回一个空值。

更新:这将返回我要完成的工作,只是需要一个更清洁的解决方案。我真的不认为我需要创建一个临时表来替换一个空值。

drop table #tt
                    select userid,firstname, lastname, 
                    (
                      SELECT     count(*) AS HasEmail
                      FROM         dbo.UserProfiles AS UP1
                      WHERE     (UP1.EmailAddress IS NOT NULL)AND (UP1.CreatedBy = UserProfiles.UserId) and (datecreated between @startdate and @enddate)
                      GROUP BY CreatedBy
                    ) as EmailCount
                    into #tt …
Run Code Online (Sandbox Code Playgroud)

t-sql coalesce isnull

2
推荐指数
1
解决办法
1万
查看次数

如何安全地从SQL Server读取可能为null的字符串值?

当Address2列为空时,此行:

string address2 = sqlD8aReader.GetString(ADDRESS2_OFFSET);
Run Code Online (Sandbox Code Playgroud)

......失败了:

  System.Data.SqlTypes.SqlNullValueException was unhandled by user code
  HResult=-2146232015
  Message=Data is Null. This method or property cannot be called on Null values.
  Source=System.Data
  StackTrace:
       at System.Data.SqlClient.SqlBuffer.get_String()
       at System.Data.SqlClient.SqlDataReader.GetString(Int32 i)
       at HandheldServer.Models.SQLServerPOCRepository..ctor() in c:\HandheldServer\HandheldServer\Models\SQLServerPOCRepository.cs:line 58
  InnerException:
Run Code Online (Sandbox Code Playgroud)

如何安全地读取可能为null的字符串?它应该以某种方式在SQL中处理(如果是这样,如何?)还是应该在read/C#代码中处理?

c# sql t-sql sql-server isnull

2
推荐指数
1
解决办法
2980
查看次数

如何在Java中将null转换为false?

在我的代码中,我有一个org.apache.tapestry5.json.JSONObject名字j.我想use-name从该Object 读取属性:

Boolean isUseName       = (Boolean) j.opt("use-name");
Run Code Online (Sandbox Code Playgroud)

值可以是true,false或null(如果JSONObject中不存在该条目).现在我想用isUseName一个条件语句:

if(!isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

如果"use-name"不在JSONObject中,这会给我一个NullPointerException.一种方法是简单地先检查是否isUseName为空,例如

if(isUseName != null && !isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果有更优雅的方式.isUseName如果j.opt()返回null ,是否可以(自动)设置为false ?我想到的一件事是使用三元表达式,但这有多余j.opt("use-name"):

Boolean isUseName = (j.opt("use-name") != null)
                  ? (Boolean) j.opt("use-name")
                  : false;
Run Code Online (Sandbox Code Playgroud)

java ternary-operator isnull nullpointerexception

2
推荐指数
1
解决办法
123
查看次数

检查spark数据帧中的行值是否为null

我在pyspark中使用自定义函数来检查spark数据帧中每一行的条件,如果condition为true则添加列.

代码如下:

from pyspark.sql.types import *
from pyspark.sql.functions import *
from pyspark.sql import Row

def customFunction(row):
    if (row.prod.isNull()):
        prod_1 = "new prod"
        return (row + Row(prod_1))
    else:
        prod_1 = row.prod
        return (row + Row(prod_1))

sdf = sdf_temp.map(customFunction)
sdf.show()
Run Code Online (Sandbox Code Playgroud)

我在下面提到了错误:

AttributeError:'unicode'对象没有属性'isNull'

如何检查自定义函数中当前行中特定列的空值?

isnull user-defined-functions apache-spark pyspark spark-dataframe

2
推荐指数
1
解决办法
1万
查看次数

WHERE子句MYSQL中的ISNULL(value,0)

我有这个记录:

SELECT sc.no, scl.quantite, scl.description, scl.poids, scl.prix, sl_ref.refsl, sl_ref.codetva, sl_ref.tauxtva, sl_ref.compte 
FROM shop_commande 
AS sc, shop_commande_ligne AS scl, selectline_ref AS sl_ref 
WHERE sc.id = scl.shop_commande_id 
AND sl_ref.refshop = ISNULL(scl.shop_article_id, 0) 
AND sc.id NOT IN (SELECT id_command FROM selectline_flag)
Run Code Online (Sandbox Code Playgroud)

有时,在sl_shop_article_id中,有一个NULL值。我想要的是将其替换为0,这样子句:

sl_ref.refshop = scl.shop_article_id
Run Code Online (Sandbox Code Playgroud)

即使scl.shop_article_id为NULL 也可以工作。为此,我尝试使用ISNULL函数,但它使请求出错,并且出现错误:

1582-对本机函数“ ISNULL”的调用中的参数计数不正确

如何使用?

mysql isnull where

2
推荐指数
1
解决办法
1万
查看次数