Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:基于另一列更新列+其他数据清理_Sql_Tsql - Fatal编程技术网

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,'')