【发布时间】:2017-02-22 04:59:00
【问题描述】:
编辑:我意识到我试图编辑的字段是 nvarchar(max),并且包含大量垃圾数据,而我试图开始工作的扩展作为逗号分隔值的单一角色。 ..按照我的要求去做是不太可能的。非常感谢所有提供帮助的人!
在我问之前,请知道我对数据库具有只读访问权限并且无法写入临时表...因为这是我想到的一种解决方案...
我目前正在使用以下查询:
USE Database
GO
DECLARE @dn VARCHAR(13)
SET @dn = '%15555555555%'
SELECT switch_extension, line_number, system_configurations.name, system_configurations.description, lines.system_id
FROM lines, system_configurations
WHERE lines.system_id=system_configurations.system_id
AND switch_extension like @dn
AND lines.status = 1
SELECT distinct CS.name, CTD.cti_data_value
FROM cti_source AS CS with (nolock)
JOIN cti_source_data AS CTD with (nolock)ON CS.cti_source_id = CTD.cti_source_id
--WHERE CS.status = 1
AND (CTD.cti_data_name = 'Agent_Ext'or CTD.cti_data_name = 'IVR_Ext')
AND CTD.cti_data_value LIKE @dn
问题是,CTD.cti_data_value 可以包含存储为字符串的范围,而不是具有单个值的新行,例如 '15551112222-15551113333' 而不是 15551112222、15551112223、...
如果我在此范围内查询@dn(除非范围的开头或结尾),我没有得到任何结果(在上面的示例中,如果我搜索 15551112345,即使它存在,也不会有结果在“范围”内)。
有没有办法改变这个来获得这个单个字符串中的最小值/最大值,然后在最小值/最大值之间找到一个结果,或者我是在一条小溪上吗?
【问题讨论】:
标签: sql sql-server-2008