来看看 SELECT A = ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK')结果是K,如何做解释? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK')/* ---- (所影响的行数为 1 行)*/ SELECT A = ISNULL(NULLIF(' ',' '),'kkkkkkkk')A----kkk(1 行受影响) --2005SELECT A = ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK') /*----K(1 行受影响)*/ SELECT A = ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK')--RESULT:A----K(1 row(s) affected) NULLIF返回的NULL是根据里面的两个常量自动生成的类型 SELECT A = ISNULL(NULLIF(CONVERT(VARCHAR(50),''),''),'KKKKKKKKKKKKKKKKKKKKKKKKKK') DECLARE @T TABLE(COL1 VARCHAR(1),COL2 VARCHAR(10),COL3 VARCHAR(50))INSERT INTO @TSELECT '','',''SELECT ISNULL(NULLIF(COL1,COL2),'KKKKKKKKKKKKKKKKKKKK'),ISNULL(NULLIF(COL2,COL3),'KKKKKKKKKKKKKKKKKKKK'),ISNULL(NULLIF(COL3,''),'KKKKKKKKKKKKKKKKKKKK')--用COLACESE可以避免这种情况,COALESCE(NULLIF(COL1,COL2),'KKKKKKKKKKKKKKKKKKKK')FROM @T/*K KKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK*/ 确实,NULLIF函数的结果如果返回的是一个参数,则声明的参数大小为该参数的初始大小。 NULLIF如果两个指定的表达式相等,则返回空值。语法NULLIF ( expression , expression )参数expression常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。返回类型返回类型与第一个 expression 相同。类型是第一个参数的类型! SQLServer 输出XML 查询语句 求一SQL(怎么解决?) 快过年了,小弟需要帮助 释放临时表 请教一简单的多表查询!(在线等) 求答案(ms_sql面试题高级查询) 在游标中动态变更表名,可以吗? 有一个表里面有某个字段出现重复记录,怎样保留重复记录中的第一条记录 怎样让CSDN不给我回邮件 大家来评价一下ERwin、PowerDesigner、Visio 2002、Rational Rose那个更好?来者有分?? 关于外键的问题???(急急急!!!!!!) 手机开发sqlserver 创建发布 帮忙检查下触发器的错误。谢谢
----
(所影响的行数为 1 行)
*/
SELECT A = ISNULL(NULLIF(' ',' '),'kkkkkkkk')
A
----
kkk(1 行受影响)
SELECT A = ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK')
/*----
K(1 行受影响)*/
SELECT A = ISNULL(NULLIF('',''),'KKKKKKKKKKKKKKKKKKKKKKKKKK')
--RESULT:A
----
K(1 row(s) affected)
COL1 VARCHAR(1)
,COL2 VARCHAR(10)
,COL3 VARCHAR(50)
)
INSERT INTO @T
SELECT '','',''
SELECT
ISNULL(NULLIF(COL1,COL2),'KKKKKKKKKKKKKKKKKKKK')
,ISNULL(NULLIF(COL2,COL3),'KKKKKKKKKKKKKKKKKKKK')
,ISNULL(NULLIF(COL3,''),'KKKKKKKKKKKKKKKKKKKK')
--用COLACESE可以避免这种情况
,COALESCE(NULLIF(COL1,COL2),'KKKKKKKKKKKKKKKKKKKK')
FROM @T/*
K KKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK
*/
如果两个指定的表达式相等,则返回空值。语法
NULLIF ( expression , expression )参数
expression常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。返回类型
返回类型与第一个 expression 相同。类型是第一个参数的类型!