sql - 根据特定字符从一行转换多行
问题描述
我正在尝试根据特定字符从一行转换为多行我从某人那里复制了一个脚本,该脚本正在使用他/她的示例但不适合我,如下所示
;WITH tmp(NOTEINDX, DataItem, TXTFIELD) AS
(
SELECT
NOTEINDX,
LEFT(TXTFIELD, CHARINDEX('#', TXTFIELD + '#') - 1),
STUFF(TXTFIELD, 1, CHARINDEX('#', TXTFIELD + '#'), '')
FROM SY03900
UNION all
SELECT
NOTEINDX,
LEFT(TXTFIELD, CHARINDEX('#', TXTFIELD + '#') - 1),
STUFF(TXTFIELD, 1, CHARINDEX(',', TXTFIELD + '#'), '')
FROM tmp
WHERE
TXTFIELD > ''
)
SELECT
NOTEINDX,
DataItem
FROM tmp
ORDER BY NOTEINDX
但是我得到以下错误
Msg 402, Level 16, State 1, Line 6
The data types text and varchar are incompatible in the add operator.
我正在使用 SQL Server 2008 谢谢, Hatim
解决方案
推荐阅读
- linq - LINQ 查询总是返回 Null
- python - 导入带有引号的奇怪格式的 csv
- flutter - Flutter`预期有1个位置参数,但找到了0个。`
- php - PHP SQL 检查表单输入是否存在于其他表中,然后继续
- javascript - 按值对javascript对象数组进行排序
- reactjs - Office 加载项中的文件输入?
- python-3.x - “[Errno 38] Function not implemented:”在 Azure 机器学习上安装 Tensorflow 对象检测 API 时发生
- acumatica - 对于 acumatica,如何将 FormTab 中两个网格列的值相加并将该值分配给 FormTabs 区域上方的字段?
- slickgrid - 如何在 aurelia slickgrid 的 odata 后端更新过滤器
- swift - 是否对具有关联值的枚举案例进行速记布尔检查?