我有以下描述:'样品产品制造商产品名称XYZ - 尺寸',我想从此获得值'产品名称XYZ'.如果这只是一行我只是使用SUBSTRING没有问题,但我有成千上万的记录,虽然初始值Sample Product Maker对于所有产品都是相同的,但产品名称可能不同,我不想要任何东西.连字符.
到目前为止,我已经在这个问题的标题中产生了错误.
SELECT i.Itemid,
RTRIM(LTRIM(SUBSTRING(i.ShortDescription, 25, (SUBSTRING(i.ShortDescription, 25, CHARINDEX('-', i.ShortDescription, 25)))))) AS ProductDescriptionAbbrev,
CHARINDEX('-', i.ShortDescription, 0) - 25 as charindexpos
FROM t_items i
Run Code Online (Sandbox Code Playgroud)
我得到'参数数据类型varchar对于子字符串函数的参数3无效'
正如您所看到的,我正在获取sql语句最后一行的值,但是当我尝试将其插入SUBSTRING函数时,我遇到了各种问题.
Dat*_*eur 20
有可能你有' - '缺失的行,这会导致你的错误.试试这个...
SELECT i.Itemid,
SUBSTRING(i.ShortDescription, 22, CHARINDEX('-', i.ShortDescription+'-', 22)) AS ProductDescriptionAbbrev,
FROM t_items i
Run Code Online (Sandbox Code Playgroud)