【发布时间】:2011-09-05 08:55:42
【问题描述】:
使用 Microsoft SQL Server 2008,假设有一个 table1 保存所选的省、区、公社和村庄的 id。然后是 table2,其中包含省、区、公社和村庄的 ID 和名称。省和地区是必填字段,将始终填写。公社和村庄可能会被填满,但甚至可能不会被填满,因为它们不是必需的。
在不知道公社和村庄的 id 是否填入 table1 的情况下构建动态 SQL 语句的最佳方法是什么。
SELECT tbl1.province, tbl1.district, tbl1.commune, tbl1.village
FROM dbo.table1 AS tbl1
AND dbo.table2 AS tbl2
WHERE tbl1.province = tbl2.province_id
AND tbl1.district = tbl2.district_id
AND tbl1.commune = tbl2.commune_id
AND tbl1.village = tbl2.village_id
如果table1中的id没有填写,这个语句会给出错误的结果。
【问题讨论】:
-
@David:我认为这不适用于他的场景,请参阅我的回答。如果您认为它确实有效,请善待并提供声明。
-
对不起,我略读了这个问题 - 你的答案是正确的。
-
更新了场景。你能支持我目前的陈述吗?
-
我看不出这种情况有何不同。此外,如果有变化,请接受您的问题的答案并提出一个新问题。
标签: sql sql-server tsql sql-server-2008 dynamic-sql