标签: isnull

SQL Server:uniqueidentifier上的ISNULL

我试图比较一个子句中的列col1和变量.两者通常都包含GUID,但也可能具有NULL值.我以为我可以通过使用来解决评估为FALSE 的事实.这将比较两个空字符串,并评估为TRUE.@myvarWHERENULL=NULLWHERE ISNULL(col1, '')=ISNULL(@myvar, '')

但是,这将产生以下错误消息:

消息8169,级别16,状态2,行3转换从字符串转换为uniqueidentifier时失败.

我试过了

DECLARE @myvar uniqueidentifier = NULL
SELECT ISNULL(@myvar,'') as col1
Run Code Online (Sandbox Code Playgroud)

相同的错误消息.

两个问题:首先,我试图将uniqueidentifier变量 - 即使它具有NULL值 - 转换为(空!)字符串,而不是相反,如错误消息所示.是什么赋予了?

第二,有没有更好的方法来说明我需要的WHERE子句,以允许比较可能为NULL的uniqueidentifier?

sql sql-server null isnull uniqueidentifier

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

使用ISNULL和NULLIF时,sql server 2008的返回值会缩短

我有这个选择语句,我检查电话号码是否为空或空,如果是,那么我将返回'没有电话号码可用'.像这样

SELECT 
      Name, 
      ISNULL(NULLIF(Phone, ''), 'No Phone Number is available') AS Phone
FROM Person
Run Code Online (Sandbox Code Playgroud)

但是当电话号码为空或空时我没有收到全文"没有电话号码可用".只返回前20个字符.Phone字段的长度也是20.所以我认为这是返回文本,具体取决于电话字段的长度.

有没有办法在不改变字段长度的情况下纠正这个问题?

isnull sql-server-2008

8
推荐指数
1
解决办法
1459
查看次数

Sql Server的ISNULL()函数是懒惰/短路的吗?

TI ISNULL()是一个懒惰的功能?

也就是说,如果我编写如下代码:

SELECT ISNULL(MYFIELD, getMyFunction()) FROM MYTABLE

它会一直评估getMyFunction()还是只会在MYFIELD实际为空的情况下评估它?

sql-server isnull lazy-evaluation short-circuiting

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

Python pandas .isnull()不适用于对象dtype中的NaT

我有这个系列:

ser=pd.Series([11,22,33,np.nan,np.datetime64('nat')],name='my_series')
Run Code Online (Sandbox Code Playgroud)

该系列看起来像这样:

0     11
1     22
2     33
3    NaN
4    NaN
Name: my_series, dtype: object
Run Code Online (Sandbox Code Playgroud)

但我只得到一个TrueNULL值:

ser.isnull()

0    False
1    False
2    False
3     True
4    False
Name: my_series, dtype: bool
Run Code Online (Sandbox Code Playgroud)

这是一个错误或如何正确计算熊猫系列中的NULL值?这没有帮助:

ser=ser.replace('NaN',np.nan)
Run Code Online (Sandbox Code Playgroud)

谢谢!

python datetime isnull pandas

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

在分配中使用ISNULL调用存储过程.无效的语法?

对此存储过程的调用之上是对另一个存储过程的另一个调用.@NewIdentifier如果需要,第一个过程将分配一些东西,否则我需要使用默认值SaleId.

exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它的工作原理

declare @Id int
set @Id = ISNULL(@NewIdentifier, @SaleId)
exec myStoredProc @SaleId = @Id
Run Code Online (Sandbox Code Playgroud)

是否可以ISNULL在分配存储过程参数时使用?我不确定这种语法有什么问题.

sql-server syntax isnull

7
推荐指数
1
解决办法
3428
查看次数

如何在Java中检查JSON对象是否为空?

在Java中,如果我使用以下JSON字符串作为示例,我将如何检查对象是否为空/ null

{"null_object_1" : [], "null_object_2" : [null] }
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

if(!jsonSource.isNull("null_object_1"))  {/*null_object_1 is not empty/null*/}
if(!jsonSource.isNull("null_object_2"))  {/*null_object_2 is not empty/null*/}
Run Code Online (Sandbox Code Playgroud)

但是这些IF语句仍然返回true(就好像它们不是空/ null).

有没有人有办法解决吗?

编辑: 通过"对象",我的意思是array.

java json isnull

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

多列UPDATE-JOIN与多ISNULL需要很长时间?

我们在数据库中有一个存储过程,它通过连接30个列上的2个表和where条件来更新表.SQL的一般格式为:

UPDATE Target
SET col1 = Source.col1
INNER JOIN Source 
on 
ISNULL(Target.Col2, '') = ISNULL(Source.Col2, '') and
ISNULL(Target.Col3, '') = ISNULL(Source.Col3, '') and
.
.
.
ISNULL(Target.Col31, '') = ISNULL(Source.Col31, '') and 
Run Code Online (Sandbox Code Playgroud)

这是查询计划.将其保存到您的PC并重新打开,以便更好地扩展.

在此输入图像描述

Source表有65M记录,Target 165M.以前它曾经在很长一段时间内运行.考虑到查询的丑陋和潜在的低效率,我发现这令人惊讶.这个月它运行了1.5个小时,使用了100%的处理器,我们不得不杀死它.

任何建议如何即兴创作以下查询并使其按时运行..?

我们在30-col连接条件中使用的一些列上有单列索引.

我知道ISNULL函数和30列的连接是坚果,这是一个糟糕的设计.不要怪我,我继承了这个经济.

不幸的是,没有时间进行重新设计.有什么建议?

sql join isnull sql-server-2008

7
推荐指数
1
解决办法
403
查看次数

mysql如果不为null,则为0或""

SELECT * 
  FROM table WHERE id IN ('21') 
   AND (content_id IS NULL OR content_id = 0 OR content_id = '')
Run Code Online (Sandbox Code Playgroud)

是否有更短的方式来写这种情况.

我有一个int()列,可以是:NULL,0或EMPTY.

mysql isnull

7
推荐指数
1
解决办法
7033
查看次数

在VB6和VB.net中是IsNull

我有一个代码 -

strTest="    "    
IsNull(Trim(strTest)) 
Run Code Online (Sandbox Code Playgroud)

它在VB6中返回False.

我把这段代码写到VB.net但是

ISNULL(TRIM(strTest))

返回True.
那么, VB6中的IsNull(Trim("")) = ?? 在VB.net中
谢谢.

vb.net migration vb6 isnull

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

在TSQL中使用ISNULL的可疑查询

我希望在我的查询中防止不可搜索的表达式,这是检查空条件的更好方法吗?

AND c.Account IS NOT NULL 
AND c.Account <> ''
Run Code Online (Sandbox Code Playgroud)

要么

AND ISNULL(c.Account,'') <> ''
Run Code Online (Sandbox Code Playgroud)

我突然意识到Account它来自一个LEFT JOIN所以它可能是空的.我想要他们只相交的情况,这意味着我真的应该用一个INNER JOIN吧?谢谢你的facepalms;)

然而,忽视了肉麻的自我实现,我还是想知道在一般情况下,我不能让这个问题的答案AccountNOT NULL列.

t-sql sql-server isnull

6
推荐指数
1
解决办法
3446
查看次数