【发布时间】:2017-07-30 23:35:30
【问题描述】:
我有一个用于返回值的查询:
DECLARE @ VALUE varchar(1000) = 'ACELLA PHARMA [A200]'
select
a.item_id,
attr_vals = concat(a.attr_val, ' ', quotename(b.attr_val))
from
ndc_attr as a
left outer join
[NDC_ATTR] b
on b.field_id = 144
and a.field_id = 225
where
b.attr_val is not null
and b.attr_val like '%' +@ VALUE + '%'
问题是我需要括号内的值:本例中为 A200。
我试图通过在其中添加 if 语句来分解查询:
if @VALUE like '%[%' and @VALUE like '%]%'
begin
SET @VALUE = SUBSTRING(@VALUE, CHARINDEX('[', @VALUE) + 1, LEN(@VALUE) - 1)
end
但奇怪的是,完整的字符串正在返回 ('ACELLA PHARMA [A200]')。
如何分解这个值,以便只有括号内的字符串在 @VALUE 上?
【问题讨论】:
-
谁删除了他们的答案,这很有帮助!放回去!
-
我会恢复它,但我认为 Gordon 的更好......你应该使用他的。
标签: sql sql-server