当前位置: 首页 > 面试题库 >

SQL Server中ISNULL函数的截断问题

宋鸿
2023-03-14
问题内容

最近,我遇到了一种情况,ISNULL如果第一个字符串为null ,函数将向我返回截断的数据。

ISNULL(a, b);

我发现a是5个字符,b是10个字符,但是当a为null时,它将仅返回b的5个字符而不是全长。

这是一个已知的问题?


问题答案:

这是一个已知的行为

MSDN

如果check_expression的值不为NULL,则返回该值;否则html" target="_blank">返回false。否则,如果类型不同,则将replace_value隐式转换为check_expression类型后返回。如果replacement_value的长度大于check_expression,则replacement_value可以被截断。

使用COALESCE超过走到这问题

SELECT COALESCE(a, b) From yourtable

这是一个演示

CREATE TABLE #nulltest 
  ( 
     a CHAR(5), 
     b CHAR(10) 
  )

INSERT INTO #nulltest 
VALUES      ('12345','1234567890'), 
            (NULL,'1234567890')

SELECT a,   
       b, 
       ISNULL(a, b)   AS Isnull_Result, 
       COALESCE(a, b) AS Coalesce_Result 
FROM   #nulltest

结果 :

╔═══════╦════════════╦═══════════════╦═════════════════╗
║   a   ║     b      ║ Isnull_Result ║ Coalesce_Result ║
╠═══════╬════════════╬═══════════════╬═════════════════╣
║ 12345 ║ 1234567890 ║         12345 ║      12345      ║
║ NULL  ║ 1234567890 ║         12345 ║      1234567890 ║
╚═══════╩════════════╩═══════════════╩═════════════════╝


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : SQL中的TRUNCATE和DELETE有什么区别 (32个答案) TRUNCATE vs DELETE FROM的利弊 (11个答案) 6年前关闭。 关于mysql / sqlserver,我的脑海里发生了一件事,即 删除/截断 哪个更好更快? 在哪里使用删除? 在哪里使用截断? 问题答案: 删除 DELETE是DML命令。 使用行锁执行DELETE语

  • 本文向大家介绍PHP中iconv函数转码时截断字符问题的解决方法,包括了PHP中iconv函数转码时截断字符问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 iconv是转换编码的,但是在中文转码时候出现显示不全问题。    或者用mb_convert_encoding()   保险就用mb_conver_encoding 

  • 功能限制拦截断点 bp EnableMenuItem 禁止或允许菜单项 bp EnableWindow 禁止或允许窗口

  • 我有一个代表. csv文件结构的自定义类,它稍后会读入该类的arrayList。它有以下标签: 这是简化的. csv文件: 当我将这些读入arrayList并将各个状态放在consolse上只是为了检查时,它会正确显示(IN_STOCK,OUT_OF_STOCK)。但是,当我尝试将其插入数据库时,它会被截断: java.sql.SQLException:第1行的列“Status”的数据被截断 以下

  • 问题内容: 我创建它使用GROUP_CONCAT来连接的结果从数据类型的产品列的查询视图在一个名为列。问题是mysql截断了concat_products列的值。phpMyAdmin表示concat_products列的数据类型为 餐桌产品: concat_products_vw查看: 根据mysql手册 VARCHAR列中的值是可变长度的字符串, 长度可以指定为MySQL 4.0.2之前的1到2

  • SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder 1 Jarlsberg 10.45 16 15 2 Mascarpone 32.56 23 3 Gorgonzola 15.67 9 20 假如 "UnitsOnOr