首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ISNULL() On Value,但如果不是Null,则使用引号

ISNULL() On Value,但如果不是Null,则使用引号
EN

Stack Overflow用户
提问于 2014-03-20 13:16:12
回答 1查看 1.5K关注 0票数 0

我正在构建动态SQL语句。我正在检查null值,如果值不是null,则在参数值周围放置单引号。在下面的@TEST_GU中是一个字符串参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BEGIN TRAN
DECLARE @SQL nvarchar(max)
SELECT @SQL = 'UPDATE [THIS IS A TABLE]
SET [TEST_GU]=' + '''' + ISNULL(@TEST_GU,'') + ''''+', 
+ ' SELECT [TEST_GU] FROM 
[THIS IS A TABLE]
WHERE [TEST_GU] =' + '''' + ISNULL(@TEST_GU,'') + '''' +''
PRINT LEN(@SQL)
EXEC (@SQL)
COMMIT

这是不起作用的,因为如果它是null,它最终会在空值周围放置引号,从而使整个语句变得不格式化。因此,我的问题是,在上述格式中,如果null使用ISNULL方法的第二个参数(在本例中为空''),是否可以检查空值。如果不是null,则将参数值放在单引号中。

EN

回答 1

Stack Overflow用户

发布于 2014-03-20 13:24:33

只需将引号放入isnull()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT @SQL = 'UPDATE [THIS IS A TABLE]
SET [TEST_GU]=' + '''' + ISNULL(''''+@TEST_GU+'''','') + ''''+', 
+ ' SELECT [TEST_GU] FROM 
[THIS IS A TABLE]

如果值为NULL,则级联将返回NULL,因此它仍然可以满足您的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22545261

复制
相关文章
为什么HashSet里value不是null?
HashSet底层的value为啥不是一个 null呢,效率不是更高,还省得创建对象了?
JavaEdge
2021/10/18
8550
为什么HashSet里value不是null?
HashSet底层的value为啥不是一个 null呢,效率不是更高,还省得创建对象了?
JavaEdge
2021/12/07
7140
为什么HashSet里value不是null?
sql =null is null_sqlserver isnull函数
3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。
全栈程序员站长
2022/11/01
7280
当 NOT NULL DEFAULT遇到 Invalid use of NULL value
ERROR 1138 (22004) at line 7: Invalid use of NULL value
WindCoder
2018/09/20
2.7K1
python学习——pandas查看数据集null值:isnull
在数据集中,可能有些字段下会有null值,我们在进行数据处理的时候,不能视而不见,可以使用isnull查看是否有空值
全栈程序员站长
2022/11/01
6120
the bind value at index 2 is null
Greendao 条件查询数据报错 the bind value at index 2 is null 导致报错的方法: xxxDao.queryBuilder().where(xxxDao.Properties.XXX.eq(value).unique() xxxDao.queryBuilder().where(xxxDao.Properties.XXX.notEq(value).unique() … 先说下解决方法:就是对以上的方法的调用传入的 value值做空判断。 比如: xxxDao.queryB
103style
2022/12/19
5460
DBNull.Value与Null的区别
Null是.net中无效的对象引用。 DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(<NULL>)时,在.net中的值。 以下是我测试的一个例子。 例:表tbl_Student id    name    address 1      jim      <NULL> 将上述表数据填充到.net 的名为dt的DataTable中。 dt.Rows[0]["address"]不等于null但是等于DBNull.Value. 可见null表示一个对象的指向无效,即该对象为空对象。 DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象。 另外注:对上述dt,如果有如下代码:dt.Rows[0][100]。结果如何? 并非想象中的null。而是出现异常:索引超出数组界限。 对于普通的引用类型变量,如果指向对象为null,则会提示:未将对象引用设置到对象实例。但对于使用dt.Rows[i][j]取值,如果第i行存在但i行没有j列,则直接出现异常,不会返回一个指向null的dt.Rows[i][j]。 所以:使用(dt.Rows[0][100]!=null)判断没有意义。为避免0行的100列不存在。可以判断(dt.Rows[0].ItemArray.Length>100).
跟着阿笨一起玩NET
2018/09/18
9030
mysql技巧:如果记录存在则更新/如果不存在则插入的三种处理方法
新增一个员工时,如果该员工已存在(以员工号f_emp_code作为判断依据),则更新,否则插入。而且工资f_salary,更新时,不得低于原工资(即:工资只能涨,不能降)。
菩提树下的杨过
2018/12/21
9.3K0
LaTeX 如何使用双引号,单引号[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153093.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/12
6.3K0
LaTeX 如何使用双引号,单引号[通俗易懂]
mysql ”Invalid use of null value“ 解决方法
因为要更改”information”表中的”编号”列为非空,使用数据库查询语句“alter table information modify ‘编号’ varchar(255) not null”可以更改其他的列,但只是在编号列出错,错误信息为Invalid use of NULL value。
全栈程序员站长
2022/07/07
9440
React报错之`value` prop on `input` should not be null
原文链接:https://bobbyhadz.com/blog/react-value-prop-on-input-should-not-be-null[1]
chuckQu
2022/08/19
7060
React报错之`value` prop on `input` should not be null
[Spring Boot] Spring boot 使用@Value 注解获取的配置属性为null的原因
如果不好的,我可以解释一下,这是由于你写的类并没有被Spring boot实例化为Java bean。需要实例化。
用户2353021
2020/05/11
1.6K0
[Spring Boot] Spring boot 使用@Value 注解获取的配置属性为null的原因
总结MySQL和Oracle的语法区别
Oracle左连接、右连接可以使用(+)来实现,MySQL只能使用left join ,right join等关键字。 Oracle
程序员云帆哥
2022/05/12
1.7K0
SQL函数 ISNULL
Replace-Expression的数据类型应该与Check-Expression的数据类型兼容。
用户7741497
2022/04/06
6660
Collectors toMap,当value为null时空指针报错
那么怎么解决呢? 既然时merge方法造成的,那就不调merge方法。 我们用自己定义的accumulator,用Stream的另一个collect方法
似水的流年
2021/06/17
1.5K0
oracle和mysql语法区别大吗_口语和语法的区别
最近需要迁移项目,将数据库由Oracle改为MySQL。由于两者的语法有部分不一样,所以需要把Oracle中能用但MySQL中不能用的函数/类型等改为MySQL中能用的,以下是总结出的部分语法区别: 一、数据类型 1. Number类型 MySQL中是没有Number类型的,但有int/decimal 类型,Oracle中的Number(5,1)对应MySQL中的decimal(5,1),Number(5) 对应 int(5)。MySQL中的数字型类型比较多,分的也比较细,还有tinyint、smallint、mediumint、bigint等类型 2. Varchar2(n)类型 MySQL中对应Oracle Varchar2(n)类型的替代类型是varchar(n)类型。 3. Date 类型 MySQL 中的日期时间类型有Date、Time、Datetime等类型,MySQL中Date类型仅表示日期(年-月-日),Time类型仅表示时间(时:分:秒),而Datetime类型表示日期时间(年-月-日 时:分:秒),Oracle中的Date类型和MySQL中的Datetime类型一致。 二、函数 1. length(str)函数 Oracle中的length(str)是获取字符串长度的函数,MySQL 中对应的函数为char_length(str)。 2. sys_guid()函数 Oracle中可通过sys_guid()函数是生成随机序列,MySQL通过UUID()生成随机序列。 3. 时间格式化函数 将时间转换为字符串型时间 MySQL date_format(NOW(),’%Y-%m-%d’) 对应Oracle的 Oracle中的 to_char(sysdate, ‘YYYY-MM-DD’); 将字符串型时间转换为时间类型 MySQL str_to_date(‘2019-01-01′,’%Y-%m-%d’) 对应Oracle中的 to_date(‘2019-01-01’, ‘YYYY-MM-DD’); 包括时分秒的函数转换:DATE_FORMAT(NOW(),’%Y-%m-%d %H:%i:%s’),str_to_date(‘2019-01-01′,’%Y-%m-%d %H:%i:%s’)。 4. 条件函数(nvl()、nvl2()、decode()) nvl(tab.columnName, 0):如果tab.columnName值为空,则返回值取0,否则取tab.columnName;对应的MySQL函数为:ifnull(tab.columnName, 0)。 nvl2(expr1,expr2,expr3):如果expr1不为null,则返回expr2,否则返回expr3;对应的MySQL函数为:if(expr1,expr2,expr3)。 DECODE(value, val1, val2, val3):如果value等于val1,则返回val2,否则返回val3;MySQL可用IF函数表示:if(value=val1, val2, val3); DECODE(value, if1, val1, if2,val2,…,ifn, valn, val):如果value等于if1,则返回val1,如果value等于if2,则返回value2…如果value等于ifn,则返回valn,否则返回val;MySQL对于这种判断可以通过case when then else end;l来判断,即:case when value=if1 then val1 when value=if2 then val2,,,when value=ifn then valn else val end; 5. trunc()函数 TRUNC(12.123):返回整数(12);MySQL对应的函数:truncate(12.123, 0); TRUNC(12.123, 2):返回值保留2为小数(12.12);MySQL对应的函数:truncate(12.123, 2); TRUNC(SYSDATE):返回值为(2019-07-26 00:00:00);MySQL对应的为cast(now() as datetime):返回值为(2019-07-26 14:11:38); MySQL的cast函数语法为:CAST(xxx AS 类型) (可用类型为:二进制,同带binary前缀的效果:BINARY;字符型,可带参数:CHAR();日期:DATE;时间:
全栈程序员站长
2022/10/05
2.8K0
isEmpty和isNull()区别
 isEmpty和isNull()区别 一个NULL字符串一定是一个空串, 一个空串未必是一个NULL字符串 例如: QString().isNull():   //结果为true QString().isEmpty();  //结果为true QString("").isNull();   //结果为false QString("").isEmpty();   //结果为true 批注:  一个NULL字符串就是使用QString的默认构造函数或者使用(const char*)0作为参数的构造函数创建的字符串对象。 QString((const char*)0).isNull();   //结果为true
CN_Simo
2018/07/31
5270
isEmpty和isNull()区别
 isEmpty和isNull()区别 一个NULL字符串一定是一个空串, 一个空串未必是一个NULL字符串 例如: QString().isNull():   //结果为true QString().isEmpty();  //结果为true QString("").isNull();   //结果为false QString("").isEmpty();   //结果为true 批注:  一个NULL字符串就是使用QString的默认构造函数或者使用(const char*)0作为参数的构造函数创建的
CN_Simo
2017/12/26
1.4K0
Golang的单引号、双引号与反引号
而单引号则用于表示Golang的一个特殊类型:rune,类似其他语言的byte但又不完全一样,是指:码点字面量(Unicode code point),不做任何转义的原始内容。
py3study
2020/01/02
3.9K0
Golang 单引号、双引号和反引号
Golang限定字符或者字符串一共三种引号,单引号(’’),双引号("") 以及反引号(``)。反引号就是标准键盘“Esc”按钮下面的那个键。
twowinter
2020/04/16
15.4K0

相似问题

如果value值总是导致null,则

10

如果value不为null python,则合并两列

118

当..。不是NULL与ISNULL/COALESCE。

36

如果输入fromJson包含双引号,则返回NULL

10

如果变量不是null,则使用where子句查询

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文