MSSQL 对比数据类型text和varchar / navchar(xxx)

今天在查询数据表中的一个字段,数据类型为TEXT。

SELECT TOP 10 * FROM Table1
  WHERE TEXT1 = ‘12321’;

错误提示:数据类型 text 和 varchar 在 equal to 运算符中不兼容。

C#中不管是TEXT或VARCHAR还有NAVCHAR都会对应String类型,但在数据库中却不能直接对他们直接进行比较。

修改SQL语句如下:

使用CONVERT(字段类型, 字段名称)

SELECT TOP 10 * FROM table1
  WHERE CONVERT(VARCHAR, col1) = ‘12321‘;

也可以使用LIKE

SELECT TOP 10 * FROM table1
  WHERE col1 LIKE ‘12321‘;

  

时间: 2024-10-06 19:17:39

MSSQL 对比数据类型text和varchar / navchar(xxx)的相关文章

查询数据库语句报错“数据类型 text 和 varchar 在 equal to 运算符中不兼容。"

问题:查询数据库语句报错"数据类型 text 和 varchar 在 equal to 运算符中不兼容." 解决: select * from 表名称 where cast(查询的字段名称 as varchar(max)) ='查询的值'

System.Data.SqlClient.SqlException: 数据类型 text 和 varchar 在 equal to 运算符中不兼容。

一.引起的源头 环境:vs2015,sqlserver2008 相关程序包:ef6 定义了一个实体article public class Article { public string Data{get;set;} } EntityTypeConfiguration的配置 Property(a => a.Data).IsRequired().HasColumnType("text"); 这样可以正常生成表字段,而且类型也正确插入数据的时候,就引起了以下异常 System.Dat

数据类型 text 和 varchar 在 add 运算符中不兼容

原文:数据类型 text 和 varchar 在 add 运算符中不兼容 在SQL Server2005中,使用类似下面的Update语句: 1 UPDATE tb_SmsBlacklist SET mobile=mobile +','+'' 其中mobile为text数据类型,会报错:数据类型 text 和 varchar 在 add 运算符中不兼容,解决方法如下: 1 UPDATE tb_SmsBlacklist SET mobile=CAST(mobile AS VARCHAR) +','

SQL Server中Text和varchar(max)数据类型区别

SQL Server中Text和varchar(max)数据类型区别 以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与varchar(max)和nvarchar(max)的区别,主要是对操作符的限制,text只能被下列函数作用: 函数 语句 DATALENGTH READTEXT PATINDEX SET TEXTSIZE SUBSTRING UPDATETEXT TEXTPTR WRITETEXT TEXTVALID

MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法

Ms - sql 数据库批量替换字符串 MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法 update ContentInfo set spcContent=replace(cast(spcContent as varchar(max)),'http://www.buy5188.com/','http://www.epowerchina.com.cn/')

如何解决:数据类型 ntext 和 varchar 在not equal to 运算符中不兼容

select * from hrmdepartmentdefined where zhbgly = '36' 会报错.显示 [Err]42000-sql server 数据类型 text和varchar 在equal to  运算符中不兼容. 正确的写法为: select * from hrmdepartmentdefined where convert(varcahr(1000),zhbgly) = '36'

整理部分java代码和oracle,mysql,sql server对比数据类型

搜索了一下网上关于数据类型的对比,几乎没有三种数据库的对比,我就写了一些字段的对比,如果有不对的地方,请各位不吝指教. JAVA字段 oracle字段 mysql字段 sql server字段 int number int int java.lang.double number(p,s) double float java.lang.String varchar2 varchar varchar java.sql.Date date date ( year) datetime2 java.sql

Access数据类型与MS-SQL的数据类型的比较

Microsoft Access 数据类型 SQL Server 数据类型 是/否 (“是/否”数据类型:一种字段数据类型,用于只有两种可能值(如是或否.True 或 False)的字段.不允许有 Null 值.) Boolean 或 YESNO bit (bit 数据类型:在 Access 项目中,一种存储值为 1 或 0 的数据类型.接受 1 和 0 以外的整数值,但总是将其解释为 1.) 数字 (“数字”数据类型:Microsoft Access 数据库中的一种字段数据类型,用于将在数学运

mssql查找备注(text,ntext)类型字段为空的方法

在sql语句中,如果查找某个文本字段值为空的,可以用select * from 表 where 字段='' ,但是如果这个字段数据类型是text或者ntext,那上面的sql语句就要出错了. 解决办法有很多: 1 . select * from 表 where datalength(字段)=0 2.  select * from 表 where cast(字段 as varchar(100))='' 3. select * from 表 where 字段 like ''