【发布时间】:2022-08-07 22:48:27
【问题描述】:
你能帮我解决这样的问题吗: 我有这样的要求
with a as
(
select 1 num, 21 q, 49 b, 100 scq, 155 o, \'49 55;\' b_ost
union
select 2 num, 21 q, 50 b, 101 scq, 155 o,\'50 54;49 55;\'
union
select 3 num, 21 q, 48 b, 156 scq, 254 o, \'48 98;50 54;49 55;\'
union
select 4 num, 21 q, 49 b, 156 scq, 254 o, \'49 98;48 98;50 54;49 55;\'
union
select 5 num, 21 q, 48 b, 150 scq, 254 o, \'48 104;49 98;48 98;50 54;49 55;\'
)
select * , PATINDEX(\'%48 %\', b_ost), PATINDEX(b , b_ost) from a
我需要在 b_ost 列中找到第一个位置列 b 如果我使用 PATINDEX(\'%48 %\', b_ost) 则位置计算正确。 但我需要使用 b 列而不是 \'%48 %\' ,如果我将使用 PATINDEX(b , b_ost) 则将 b 定位到 b_ost 列中将为 0。 通过变量解决是不合适的。 请告诉我如何解决我的问题?