Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 server 如何修剪SQL中的空地址值_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 如何修剪SQL中的空地址值

Sql server 如何修剪SQL中的空地址值,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个表(相当标准),它有以下列 ADDRESS1 ADDRESS2 ADDRESS3 ADDRESS4 POSTCODE 我想要一些T-SQL,我可以应用它来删除空值并将值上移(我希望尽可能避免使用游标和循环) 所以如果我的数据是 ID ADDRESS1 ADDRESS2 ADDRESS3 ADDRESS4 POSTCODE ----------------------------------------------------- 1 50 The Street NULL

我有一个表(相当标准),它有以下列

ADDRESS1
ADDRESS2
ADDRESS3
ADDRESS4
POSTCODE
我想要一些T-SQL,我可以应用它来删除空值并将值上移(我希望尽可能避免使用游标和循环)

所以如果我的数据是

ID  ADDRESS1  ADDRESS2  ADDRESS3  ADDRESS4  POSTCODE
-----------------------------------------------------
1  50 The Street  NULL  The Town  The City  AB12 3GG
2  100 Avenue  Townsville  NULL  Metropolis  SG33 5WW
3  My House  NULL  NULL  FutureCity  KL21 6TT
它变成

ID  ADDRESS1  ADDRESS2  ADDRESS3  ADDRESS4  POSTCODE
-----------------------------------------------------
1  50 The Street  The Town  The City  NULL  AB12 3GG
2  100 Avenue  Townsville  Metropolis  NULL  SG33 5WW
3  My House  FutureCity  NULL  NULL  KL21 6TT
(即:所有非空值向左移动,但邮政编码保持不变)


非常感谢

我想你需要三条更新语句来从每一列中转移出来

UPDATE YourTable  
SET ADDRESS1 = ADDRESS2,
    ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS1 IS NULL

GO

UPDATE YourTable  
SET ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS2 IS NULL

GO


UPDATE YourTable  
SET ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS3 IS NULL

GO

我认为您需要三个update语句来从每一列转换

UPDATE YourTable  
SET ADDRESS1 = ADDRESS2,
    ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS1 IS NULL

GO

UPDATE YourTable  
SET ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS2 IS NULL

GO


UPDATE YourTable  
SET ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS3 IS NULL

GO

我认为您需要三个update语句来从每一列转换

UPDATE YourTable  
SET ADDRESS1 = ADDRESS2,
    ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS1 IS NULL

GO

UPDATE YourTable  
SET ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS2 IS NULL

GO


UPDATE YourTable  
SET ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS3 IS NULL

GO

我认为您需要三个update语句来从每一列转换

UPDATE YourTable  
SET ADDRESS1 = ADDRESS2,
    ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS1 IS NULL

GO

UPDATE YourTable  
SET ADDRESS2 = ADDRESS3,
    ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS2 IS NULL

GO


UPDATE YourTable  
SET ADDRESS3 = ADDRESS4,
    ADDRESS4 = NULL
WHERE ADDRESS3 IS NULL

GO

没有问题,不需要循环或光标

使用“更新自”并每次检查值本身或级别以上的值


示例:

没有问题,不需要循环或光标

使用“更新自”并每次检查值本身或级别以上的值


示例:

没有问题,不需要循环或光标

使用“更新自”并每次检查值本身或级别以上的值


示例:

没有问题,不需要循环或光标

使用“更新自”并每次检查值本身或级别以上的值

示例:

由“Low Chie Mun”提供的解决方案几乎是正确的。如果只有一个地址为null,那么这是正确的,但是您已经像下面那样调用了update语句3次(对于3个地址为null的情况)

“Low Chie Mun”提供的解决方案几乎是正确的。如果只有一个地址为null,那么这是正确的,但是您已经像下面那样调用了update语句3次(对于3个地址为null的情况)

“Low Chie Mun”提供的解决方案几乎是正确的。如果只有一个地址为null,那么这是正确的,但是您已经像下面那样调用了update语句3次(对于3个地址为null的情况)

“Low Chie Mun”提供的解决方案几乎是正确的。如果只有一个地址为null,那么这是正确的,但是您已经像下面那样调用了update语句3次(对于3个地址为null的情况)



我想你必须使用这里的案例陈述。。。对于那些如果有空值就要向左或向右移动的列…我不明白你所说的移位是什么意思。您正在检索列,对吗?还是将所有内容连接到一个stirng中?是要更改表中的永久数据,还是只在
选择过程中移动数据?@Damien_the_unsiver(和其他人)-抱歉,不清楚-更新表我想您必须在此处使用CASE语句。。。对于那些如果有空值就要向左或向右移动的列…我不明白你所说的移位是什么意思。您正在检索列,对吗?还是将所有内容连接到一个stirng中?是要更改表中的永久数据,还是只在
选择过程中移动数据?@Damien_the_unsiver(和其他人)-抱歉,不清楚-更新表我想您必须在此处使用CASE语句。。。对于那些如果有空值就要向左或向右移动的列…我不明白你所说的移位是什么意思。您正在检索列,对吗?还是将所有内容连接到一个stirng中?是要更改表中的永久数据,还是只在
选择过程中移动数据?@Damien_the_unsiver(和其他人)-抱歉,不清楚-更新表我想您必须在此处使用CASE语句。。。对于那些如果有空值就要向左或向右移动的列…我不明白你所说的移位是什么意思。您正在检索列,对吗?还是将所有内容连接到一个stirng中?是要更改表中的永久数据,还是只在
选择过程中移动数据?@Damien\u不信者(和其他人)-很抱歉不清楚-更新表格谢谢@Kiran-我想我会采用这种方法并修改以应对连续空列hanks@Kiran-我想我会采用这种方法并修改以应对连续空列hanks@Kiran-我想我会采用这种方法并修改以应对连续空列hanks@Kiran-我想我会采用这种方法,并修改以应对连续的空列。我的答案仅供参考,稳定,你可以在一个查询中生成3条update语句也很酷,我的答案仅供参考,稳定,你可以在一个查询中生成3条update语句也很酷,我的答案仅供参考,稳定,您可以在一个查询中生成3条update语句,这也很酷,我的答案仅供参考,很稳定,您可以在一个查询中生成3条update语句