我无法找到我试图在存储过程中使用的SELECT语句出了什么问题:
SELECT TOP 1 @TARIF = t.rea_est_tax_cla_ali_area,
@CHARACTERISTIC = t.rea_est_cha_id,
@USE = t.rea_est_use_id,
@TYPE = t.typ_rea_est_id,
( ( CASE
WHEN t.rea_est_tax_cla_ali_area IS NULL THEN 1
ELSE 0
END ) + ( CASE
WHEN t.rea_est_cha_id IS NULL THEN 1
ELSE 0
END ) + ( CASE
WHEN t.rea_est_use_id IS NULL THEN 1
ELSE 0
END ) + ( CASE
WHEN t.typ_rea_est_id IS NULL
THEN 1
ELSE 0
END ) ) AS NULLCOLUMNCOUNT
FROM dbo.tbl_real_estate_tax_classifier
任何帮助表示赞赏,由于工作规定,我无法提交整个程序,但问题似乎存在。
答案 0 :(得分:5)
为了便于阅读,我使用换行符重新格式化了代码。
SELECT TOP 1
@TARIF = T.REA_EST_TAX_CLA_ALI_AREA,
@CHARACTERISTIC = T.REA_EST_CHA_ID,
@USE = T.REA_EST_USE_ID,
@TYPE = T.TYP_REA_EST_ID,
((CASE WHEN T.REA_EST_TAX_CLA_ALI_AREA IS NULL THEN 1 ELSE 0 END)+(CASE WHEN T.REA_EST_CHA_ID IS NULL THEN 1 ELSE 0 END)
+(CASE WHEN T.REA_EST_USE_ID IS NULL THEN 1 ELSE 0 END)+(CASE WHEN T.TYP_REA_EST_ID IS NULL THEN 1 ELSE 0 END)) AS NULLCOLUMNCOUNT
FROM dbo.TBL_REAL_ESTATE_TAX_CLASSIFIER
希望你现在能看到问题。 NULLCOLUMNCOUNT是你的罪魁祸首。
你的意思是写这个吗?
SELECT TOP 1
@TARIF = T.REA_EST_TAX_CLA_ALI_AREA,
@CHARACTERISTIC = T.REA_EST_CHA_ID,
@USE = T.REA_EST_USE_ID,
@TYPE = T.TYP_REA_EST_ID,
@NULLCOLUMNCOUNT = ((CASE WHEN T.REA_EST_TAX_CLA_ALI_AREA IS NULL THEN 1 ELSE 0 END)+(CASE WHEN T.REA_EST_CHA_ID IS NULL THEN 1 ELSE 0 END)
+(CASE WHEN T.REA_EST_USE_ID IS NULL THEN 1 ELSE 0 END)+(CASE WHEN T.TYP_REA_EST_ID IS NULL THEN 1 ELSE 0 END))
FROM dbo.TBL_REAL_ESTATE_TAX_CLASSIFIER
答案 1 :(得分:3)
错误似乎很清楚 - 您正在使用select的一部分为变量赋值,而part则返回为列。
也许你想要这样的东西?
SELECT TOP 1
@TARIF = T.REA_EST_TAX_CLA_ALI_AREA,
@CHARACTERISTIC = T.REA_EST_CHA_ID,
@USE = T.REA_EST_USE_ID,
@TYPE = T.TYP_REA_EST_ID,
@NULLCOLUMNCOUNT = ((CASE WHEN T.REA_EST_TAX_CLA_ALI_AREA IS NULL THEN 1 ELSE 0 END)
+(CASE WHEN T.REA_EST_CHA_ID IS NULL THEN 1 ELSE 0 END)
+(CASE WHEN T.REA_EST_USE_ID IS NULL THEN 1 ELSE 0 END)
+(CASE WHEN T.TYP_REA_EST_ID IS NULL THEN 1 ELSE 0 END))
FROM dbo.TBL_REAL_ESTATE_TAX_CLASSIFIER