Sql server sql中varchar类型的between子句
我有一个sql中的field campaign_代码,它的值按时间顺序排列,以“C”作为初始字母,例如C143、C144、C145等Sql server sql中varchar类型的between子句,sql-server,Sql Server,我有一个sql中的field campaign_代码,它的值按时间顺序排列,以“C”作为初始字母,例如C143、C144、C145等 我想获取多个campain_代码的数据。从C144到C146的所有数据。问题是sql没有为BETHEN子句接受varchar类型的值。请帮帮我。以下内容是否不适用于字符串值: SELECT * FROM campaign WHERE campaign_code BETWEEN 'C144' and 'C146'; 它应该将ansi排序视为比较数字,并给出结果。在
我想获取多个campain_代码的数据。从C144到C146的所有数据。问题是sql没有为BETHEN子句接受varchar类型的值。请帮帮我。以下内容是否不适用于字符串值:
SELECT * FROM campaign
WHERE campaign_code BETWEEN 'C144' and 'C146';
它应该将ansi排序视为比较数字,并给出结果。在这个主题上有一些谷歌参考文献,也许是在:上的一个剧本,可能有助于展示可能性和局限性我不太确定你的意思是什么,不把varchar类型的值作为between子句,因为MS说它是这样的
select * from your_table
where substring(compain_code, 2, 10) between 144 and 146
您只需确保所有表达式test_u、begin_u和end_u的类型相同,因此我猜您的test_u表达式不是varchar类型?您可以将活动代码转换为数字,然后使用:
请试一试
select * from tablename where id >(select id from tablename where campain_code='C144') and id<(select id from tablename where campain_code='C146')
问题是sql没有为BEVERY子句获取varchar类型的值-这不是真的。这个问题似乎离题了,因为您描述为not working的方法确实有效,并且是解决这个问题的方法……感谢大家回答我的问题,并特别感谢grisha。你解决了我的问题
select * from tablename where id >(select id from tablename where campain_code='C144') and id<(select id from tablename where campain_code='C146')