SQL:基于另一列更新列+其他数据清理
简化问题:SQL:基于另一列更新列+其他数据清理,sql,tsql,Sql,Tsql,简化问题: Material Column='3MR2091' Table Key='1003MR2091 W047F001' 我需要的是使表键最终成为“W047” 到目前为止,我所拥有的: 选择替换[表键],“%F001%”,,[Material], 从ZMMH03_温度 需要以某种方式与 SELECT RIGHT([Table Key],LEN([Table Key])-3) As NewTableKey; SELECT LTRIM([NewTableKey]); 。。。。天哪,我知道了
Material Column='3MR2091' Table Key='1003MR2091 W047F001'
我需要的是使表键最终成为“W047”
到目前为止,我所拥有的:
选择替换[表键],“%F001%”,,[Material],
从ZMMH03_温度
需要以某种方式与
SELECT RIGHT([Table Key],LEN([Table Key])-3) As NewTableKey;
SELECT LTRIM([NewTableKey]);
。。。。天哪,我知道了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我有点激动
SELECT REPLACE(REPLACE(REPLACE(RIGHT([Table Key],LEN([Table Key])-3),'%F001%',''),[Material],''),' ','') --- Works!!!!!
现在表键只是W047文本 只需根据列为表使用update语句即可
update [YourTable] set [Table Key] = [Material] where [your condition]
或
我不确定你到底需要什么,所以我为你写了两个变体,所以,我假设你使用的是T-SQL
UPDATE [YOUR TABLE]
SET [TABLE KEY] = REPLACE([TABLE KEY], MATERIAL,'')
这将在[TABLE KEY]的值内查找MATERIAL中的值,并将其替换为空字符串。您尝试过什么吗?你检查了更新命令的语法了吗?你在用什么?MySQL,MSSQL,SQLite,…?SQL Server Management Studio 2014。是的,除了我不使用WHERE语句之外,因为材料在表键中重复。@GregBarnett:那么你可以忽略WHERE语句。它应该可以工作,但最好是安全的,而不是抱歉:首先用SELECT测试它;同意,谢谢!我喜欢这个网站。我知道从我上面的问题来看可能不是这样,但直到现在,我已经能够在这里找到我所有问题的答案。按照我接收的方式,这个文件的格式非常糟糕。我无法从源代码控制格式。
UPDATE [YOUR TABLE]
SET [TABLE KEY] = REPLACE([TABLE KEY], MATERIAL,'')