呵呵。 你说的字段数据类型不是NVARCHAR 而是 NTEXT。 其实不是空格 ,是一个16字节的指针, 指向的值为NULL。因为系统缺省设置TEXT IN ROW = OFF。 如果你不想要这种状况,你可以做如下工作:EXEC sp_tableoption 'YOURTABLE', 'text in row', 'ON' 这样设置后,显示的数据行就是NULL值--------------------------------------详细的说明请参见SQLSERVER HELP
EXEC sp_tableoption 'YOURTABLE', 'text in row', 'ON'在哪里设置
是不是每次我的在查询前,都必须执行 EXEC sp_tableoption 'YOURTABLE', 'text in row', 'ON'
是不是这 0 pmemodate char 20 1 的问题
不是, 是这个 0 pmemo ntext 16 1
'select * from patient where pmemo is not null' 可查询9条记录,但真有输入内容的只有三条 其余的6条,是空的, 最出来showmessage(inttostr(length(fieldbyname('pmemo').asstring)))是18 有内容的长度,大于是18是不是这种数据类型的最小长度是18,可以sql语句不能写 select * from patient where len(pmemo)>18 会出错,类型不支持呀!郁闷死啦,快帮我想想办法,各位大侠
'select * from patient WHERE Ltrim(Rtrim(CONVERT(varchar(200), pmemo)))<>'''+''+'''''select * from patient WHERE len(CONVERT(varchar(200), pmemo))>18'都不行,还有没有其它办法,
还是不行呀,我取出来的值,计算长度为18,只有用trim才能去除,长度才会有为0,这是为什么呀,真奇怪sql语句为什么不能用trim呀
0 pmemodate char 20 1
0 pmemo ntext 16 1就是这个pmemo字段,增加一条记录,pmemo不赋值时,就会出现上面那种情况
这样设置后,显示的数据行就是NULL值--------------------------------------详细的说明请参见SQLSERVER HELP
EXEC sp_tableoption 'YOURTABLE', 'text in row', 'ON'
0 pmemodate char 20 1
的问题
是这个
0 pmemo ntext 16 1
可查询9条记录,但真有输入内容的只有三条
其余的6条,是空的,
最出来showmessage(inttostr(length(fieldbyname('pmemo').asstring)))是18
有内容的长度,大于是18是不是这种数据类型的最小长度是18,可以sql语句不能写
select * from patient where len(pmemo)>18
会出错,类型不支持呀!郁闷死啦,快帮我想想办法,各位大侠