相关文章推荐
安静的豆浆  ·  在SQL ...·  4 天前    · 
风流的冰淇淋  ·  ConnectionNotFoundErro ...·  2 月前    · 
果断的甘蔗  ·  Input Stream Member ...·  4 月前    · 
低调的枇杷  ·  c++ - QGLWidget ...·  1 年前    · 

正确查询方式

select a.CityID,a.CityName from [Join].dbo.Table2 as a where exists(select * from Table1 where Id=5717 and charindex( ','+ cast(a.CityID as varchar(max)) +',' ,CityList)>0)

红色的 ',' 一定要加上,如果不加查询结果将会有误。

为了代码的规范,在试用 逗号 隔开字符串的存储时,一定要前后都要加','。这样不管在数据处理还是在前段做逻辑判断都比较规范。

以逗号开头,以逗号结尾 :charindex( ','+ cast(a.CityID as varchar(max)) +',' ,CityList)>0

错误的查询方式

1:select a.CityID,a.CityName from [Join].dbo.Table2 as a where exists(select * from Table1 where Id=5717 and charindex(cast(a.CityID as varchar(max)),CityList)>0)

2:select a.CityID,a.CityName from [Join].dbo.Table2 as a where exists(select * from Table1 where Id=5717 and charindex(cast(a.CityID as varchar(max))+',',CityList)>0)

3:select a.CityID,a.CityName from [Join].dbo.Table2 as a where exists(select * from Table1 where Id=5717 and charindex(','+cast(a.CityID as varchar(max)),CityList)>0)

SO_Order.fsn FROM so_order INNER JOIN so_orderitem ON CHARINDEX(so_Orderitem.fid, SO_Order.fid) >= 1 WHERE so_order.FOrderDate = '2015-09-06' 语句不算复杂,只是执行比较慢,下面是关于这SQL语句的一些信息: –1.SQL执行203条数据 –2.耗时12秒 –3.so_order表的fid 字段 字符串 集合, –由1-2个 declare @str as nvarchar(1000) declare @areanos as nvarchar(200) --这是把areanos 字段 赋值给@areanos变量 set @areanos='1,2,3' --将拼接的SQL脚本赋值给变量 set... SELECTSTUFF((SELECT','+convert(VARCHAR, USER_NAME)FROMTE_USERFORXML PATH('')), 1, 1,'')ASUserName 的 字段 ,用 逗号 分隔用户的兴趣爱好。在 MySQL 中,如果要 查询 某个 字段 逗号 分隔的值,并且其中一个 字符串 查询 条件相等,可以使用。该函数用于在 逗号 分隔的 字符串 中查找指定的值。执行上述 查询 后,将返回具有 "football" 兴趣爱好的用户记录。的值与您实际的 数据库 和表结构相匹配。 以下测试用于去除任何 字符串 中连线的分隔符 代码如下: –去除 字符串 中连续的分隔符 declare @str nvarchar(200) declare @split nvarchar(200),@times int set @str=’中 国1 2 34 55 5 6 7 7′;–字符 set @split=’ ‘; –分隔符 select @times=(len(@str)-len(replace(@str,@split+@split,”)))/2 while @times>0 begin set @str=REPLACE(@str,@split+@split,’ ‘) set @time charindex(@split,@datas) #获取第一个分隔符所在位置 #@split为分隔符,通过什么分隔符号进行 字段 分隔 #@datas为含有分隔符的 字段 ,对此 字段 进行分隔 substring(@datas,@startindex,@endindex) #截取 字段 #@datas用于截取的 字段 #@startindex开始索引位置 #@endindex结束索引位置 len(@dat 四种join的区别已老生常谈: INNER JOIN(也可简写为JOIN): 如果表中有至少一个匹配,则返回行LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行FULL JOIN: 只要其中一个表中存在匹配,就返回行 那么问题来了,还有一种常见的写法是将表用 逗号 隔开 ,那这个又是怎么连接的呢。 先看这两张表 NeID int not null primary key identity(1,1),--新闻ID自增 NeTitle nvarchar(100) null,--标题 NeContent ntext null,--内容 NeCreateTime datetime null,--时间 /***********Function**************/ create Function StrToTable(@str varchar(1000)) Returns @tableName Table str2table varc... CREATE TABLE TA(id INT,[value] VARCHAR(100), class VARCHAR(10)); INSERT INTO TA(id,[value],class) SELECT 1,'3,2,4,5','no' UNION ALL SELECT 2,'5,1,1+2','yes'   SELECT T.id   ,SUBSTRING(T.[va 商品表 goods 有学校 字段 school_ids 学校 字段 school_ids 中保存学校表 school 的id,如果商品包含多个学校则多个id使用 逗号 分隔保存 school: goods: 最终 查询 :两个表关联,goods表中 字段 中school_ids 逗号 隔开 和school表中的id关联 MySQL版: SELECT g.id,g.school_ids,GROUP_CONCAT(s...