sql - 如何在 SQL Server 表行中拆分数据
问题描述
我有一个事务表,其中包含一个transactionId
具有类似 的值的列|H000021|B1|
。
我需要与具有类似值Category
的列的表进行连接。CategoryID
H000021
除非数据相同,否则我无法应用联接。
所以我想拆分或删除其中包含的不必要的数据,TransctionId
以便我可以加入两个表。
请帮助我解决问题。
解决方案
仅使用代码创建计算列。
初始场景:
create table Transactions
(
transactionId varchar(12) primary key,
whatever varchar(100)
)
create table Category
(
transactionId varchar(7) primary key,
name varchar(100)
)
insert into Transactions
select'|H000021|B1|', 'Anything'
insert into Category
select 'H000021', 'A category'
添加计算列:
alter table Transactions add transactionId_code as substring(transactionid, 2, 7) persisted
使用新的计算列加入:
select *
from Transactions t
inner join Category c on t.transactionId_code = c.transactionId
获得一个简单的查询计划:
推荐阅读
- django - Django 单元测试:AssertEqual 不将 PermissionDenied 与 403 进行比较,并在 get_object() 中提前终止
- php - Laravel:安排工作或工匠命令?
- c# - 如何从另一个静态类订阅一个类中的事件?
- procmail - procmail - 使用 {} 不会传送到 mbox
- flutter - Flutter/provider——用构造函数初始化一个状态
- powershell - powershell string urldecode 执行时间
- python - 从 Python 数据框中的整数中检索工作日名称
- c# - Toolstripmenuitem 未运行方法 C#
- javascript - 未捕获的类型错误:ctx.clearReact 不是动画中的函数
- pip - 如何修复纸浆值错误:太多值无法解包?