sql字符串为空
A. sql字符串去空格解决方法
一、表中字符串带空格的原因
1,空格就是空格。
2,数据是从别的系统、文件抓取,导入到SQLSERVER中的表,由于源数据存在特殊字符显示空格。
二、解决方法
第一种情况,去空格的处理的比较简单,Replace(column,‘ ‘,‘‘) 就可以解决。
第二种情况,解决方法就比较麻烦点:需要先查出相应的ASCII码,再用Replace(column,char(ascii码),‘‘)解决,以下举个栗子:
CREATE TABLE #temp(NAME NVARCHAR(50))INSERT INTO #temp SELECT ‘明天就是国庆了‘+CHAR(10) --换行符SELECT * FROM #temp --末尾显示为空格SELECT REPLACE(NAME,‘ ‘,‘‘) FROM #temp --去不掉这个空格SELECT REPLACE(NAME,CHAR(10),‘‘) FROM #temp --去掉空格SELECT REPLACE(NAME,CHAR(ASCII(RIGHT(NAME,1))),‘‘) FROM #temp --在不知道是最后一位是什么字符的情况下,先转ASCII码,在替换DROP TABLE #temp----下面是查询结果:--‘明天就是国庆了 ‘--‘明天就是国庆了 ‘--‘明天就是国庆了‘--‘明天就是国庆了‘
SQL字符串去空格解决方法
B. 【SQL】表中的空字符串与NULL中的区别何在
对于SQL的新手,NULL值的概念常常会造成混淆,常认为NULL是与空字符串''相同的事。情况并非如此。例如,下述语句是完全不同的:
mysql>INSERTINTOmy_table(phone)VALUES(NULL);
mysql>INSERTINTOmy_table(phone)VALUES('');
这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。
第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。
为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。 在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。
包含NULL的表达式总是会导出NULL值,除非在关于操作符的文档中以及表达式的函数中作了其他规定。
下述示例中的所有列均返回NULL:
mysql>SELECTNULL,1+NULL,CONCAT('Invisible',NULL);
如果打算搜索列值为NULL的列,不能使用expr = NULL测试。
下述语句不返回任何行,这是因为,对于任何表达式,expr = NULL永远不为“真”:
mysql>SELECT*FROMmy_tableWHEREphone=NULL;
要想查找NULL值,必须使用IS NULL测试。
在下面的语句中,介绍了查找NULL电话号码和空电话号码的方式:
mysql>SELECT*FROMmy_tableWHEREphoneISNULL;
mysql>SELECT*FROMmy_tableWHEREphone='';
如果正在使用MyISAM、InnoDB、BDB、或MEMORY存储引擎,能够在可能具有NULL值的列上增加1条索引。
如不然,必须声明索引列为NOT NULL,而且不能将NULL插入到列中。
用LOAD DATA INFILE读取数据时,对于空的或丢失的列,将用''更新它们。
如果希望在列中具有NULL值,应在数据文件中使用N。在某些情况下,也可以使用文字性单词“NULL”。
使用DISTINCT、GROUP BY或ORDER BY时,所有NULL值将被视为等同的。
使用ORDER BY时,首先将显示NULL值,如果指定了DESC按降序排列,NULL值将最后显示。
对于聚合(累计)函数,如COUNT()、MIN()和SUM(),将忽略NULL值。对此的例外是COUNT(*),它将计数行而不是单独的列值。
例如,下述语句产生两个计数。首先计数表中的行数,其次计数age列中的非NULL值数目:
mysql>SELECTCOUNT(*),COUNT(age)FROMperson;
对于某些列类型,MySQL将对NULL值进行特殊处理。如果将NULL插入TIMESTAMP列,将插入当前日期和时间。如果将NULL插入具有AUTO_INCREMENT属性的整数列,将插入序列中的下一个编号
C. SQL 语句 把一个值为0的字段改为空('null')
不能设为空值可能存在以下两个原因:
1.首先要判断a字段是否可以设为空值:
右键选择表,点击设计,查看字段允许null值是否打勾,打勾为可以设为空值。
拓展资料:
结构化查询语言字符型
VARCHAR VS CHAR
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。
假如向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。以后从这个字段中取出此数据时,取出的数据其长度为十个字符——字符串Bill Gates的长度。假如把字符串输入一个长度为四十个字符的CHAR型字段中,那么当取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,不需要为剪掉数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当数据库很大时,这种内存和磁盘空间的节省会变得非常重要。
D. sql 字段等于空字符串怎么写
=="" 这样就是字符串等于空。引号就是字符串,然后中间什么也不写,就是空字符串儿。