[求个SQL语句]如何判断两个固定长度的字符串在相同的位置上有相同的字符

yixian2007 2020-05-13 05:13:06
本人写代码的时候碰到问题了。

现在有一列数据,表示周,用25长度的0或1表示。

01000 00000 00000 00000 00000

从左边数一位表示一周,上面的数字表示第一周为0,第二周为1,3~25周都为0,

现在为了判断两个课程安排是否冲突,需要和另一段字符串做比较

比如:

01100 00000 00000 00000 00000

这段字符串和上段字符串,在第二位都为1,表示有冲突,只要某一个相同的位置上都有1,即为冲突。

我写不出来这个比较语句,当然用函数也是能写出来的,但我想知道有没有一个方法能够直接判断的?

比如转换成二进制,按位与,大于0,应该也是可以的,但转不出来。
...全文
271 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixian2007 2020-05-14
  • 打赏
  • 举报
回复
看懂了,谢啦,洒分送上。
yixian2007 2020-05-14
  • 打赏
  • 举报
回复
牛逼!!,虽然没看懂,看结果确实是对的。我先研究一下。
RINK_1 2020-05-13
  • 打赏
  • 举报
回复


DECLARE @A VARCHAR(29)
DECLARE @B VARCHAR(29)


SET @A='01000 00000 00000 00000 00000'
SET @B='01000 00000 00000 00000 00000'


SELECT *
FROM (SELECT SUBSTRING(REPLACE(@A,' ',''),NUMBER,1) AS SINGLE_CHAR,NUMBER 
      FROM MASTER.DBO.SPT_VALUES 
	  WHERE TYPE='P' AND NUMBER>=1 AND NUMBER<=LEN(REPLACE(@A,' ',''))) AS A
JOIN
(SELECT SUBSTRING(REPLACE(@B,' ',''),NUMBER,1) AS SINGLE_CHAR,NUMBER 
      FROM MASTER.DBO.SPT_VALUES 
	  WHERE TYPE='P' AND NUMBER>=1 AND NUMBER<=LEN(REPLACE(@B,' ',''))) AS B ON A.NUMBER=B.NUMBER AND A.SINGLE_CHAR=1 AND B.SINGLE_CHAR=1

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧