【发布时间】:2014-08-29 17:01:22
【问题描述】:
我对 SQL 相当陌生,我正在尝试编写一个更新语句,该语句实质上会将数据从一列复制到另一列,以获取 600 条记录。
例如。 ADDRESS.FIRST_NAME 即“JOHN”将被复制到所有 600 条记录的 ADDRESS.CUSTCHAR5“JOHN”中。我有四列这需要发生。这是我所得到的。
DECLARE @fName CHAR、@lName CHAR、@email CHAR、@phoneNum CHAR
SET @fName = (SELECT FIRST_NAME FROM ADDRESS INNER JOIN CUST ON ADDRESS.CUST_CODE = CUST.CUST_CODE WHERE CUST.CATEGORY_CODE = 'SR' AND ADDRESS.CUSTCHAR5 为空)
SET@lName = (SELECT LAST_NAME FROM ADDRESS INNER JOIN CUST ON ADDRESS.CUST_CODE = CUST.CUST_CODE 其中 CUST.CATEGORY_CODE = 'SR' AND ADDRESS.CUSTCHAR5 IS NULL)
SET @email = (SELECT EMAIL FROM ADDRESS INNER 加入 CUST ADDRESS.CUST_CODE = CUST.CUST_CODE WHERE CUST.CATEGORY_CODE = 'SR' AND ADDRESS.CUSTCHAR5 为空)
SET @phoneNum = (SELECT TEL1 FROM ADDRESS INNER JOIN CUST ON ADDRESS.CUST_CODE = CUST.CUST_CODE 其中 CUST.CATEGORY_CODE = 'SR' 和 ADDRESS.CUSTCHAR5 为空)
更新 dbo.ADDRESS
SET ADDRESS.CUSTCHAR5 = @fName+@lName, ADDRESS.CUSTCHAR6 = @email, ADDRESS.CUSTMEMO1 = @phoneNum
FROM 地址
INNER JOIN CUST
开启 ADDRESS.CUST_CODE = CUST.CUST_CODE
WHERE CUST.CATEGORY_CODE = 'SR'
AND ADDRESS.CUSTCHAR5 为空
AND ADDRESS.EMAIL = @email
当我运行此语句时,我收到以下错误
子查询返回超过 1 个值。这是不允许的,当 子查询遵循 =、!=、、>= 或当子查询用作 一个表达式。
如果有人能提供任何帮助,我将不胜感激。
【问题讨论】:
-
Mysql 和 sql server 是两个不同的东西。
标签: sql sql-server