sql查询的问题.

我有一个字段的值如下:

id   操作人

1    张三

2    张三,李四

3    张三,李四,王五

现在我要查询 最后一次操作人等于XX的问题

我用的是:right(Intopiecesstatus,charindex(',',reverse(Intopiecesstatus))-1)

可是这样子,我在查询 张三的时候 会报 传递到 RIGHT 函数的长度参数无效。查询=李四或者=王五的就可以.

 

求大神给一个完美的sql查询语句

牛魔王的故事
浏览 631回答 13
13回答

一只甜甜圈

用 like 不就行了。

www说

我只需要最后一次操作记录,用like 会出现我不需要的数据~~ 比如我至查询最后一次操作人是李四,如果用like 就会把最后一次操作人是王五的记录也提取出来~~

神不在的星期二

可以用like,你这个里面应该有操作的时间或者是添加记录的时间,根据时间倒序排一下即可。感觉你这样写有点不保险吧。 张三这个有可能是            张三            张三,xx,xx        xx,张三,xx   xx,xx,张三入库的时候带上前后的逗号应该好点。 ,xx,xx,xx,xx。 like的时候带上前后逗号即可。

慕码人2483693

这个数据表的设计方式是有问题的,然后你想要有一个完美的查询语句。 真不知道啥叫完美。

交互式爱情

其实我的意思很简单,在字段里 我要把最后一个值做为查询条件的匹配

呼啦一阵风

@爱编程的大叔: 咳咳,太严厉了容易造成心理创伤,毕竟咱也是从这个样子过来的

牧羊人nacy

比方查询最后一个操作人是“王五”的所有记录 查询语句:select * from 表名 where 操作人 like "%王五"

子衿沉夜

select replace(right(Intopiecesstatus,charindex(',',reverse(Intopiecesstatus))),',','') 替换掉就行了..

开心每一天1111

select top 1  操作人  from TableName where  操作人 like '%张三%' order by id desc

繁花如伊

操作人 = 李四 or 操作人 like '%,'+李四
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server