sql-server - 仅当第一个表包含某些值时才连接两个表(如果不连接另一个表)

标签 sql-server t-sql

如果TableA.Column1包含numeric,我正在尝试编写一个连接到TableA另一个TableB的查询> 如果 TableA.Column1 包含 varchar 值,则将值JoinTableA 另一个 TableC .

有没有办法编写这样的查询?

最佳答案

这样的事情怎么样?您需要将柱子转换到适合某些中间位置的位置。

SELECT * 
FROM TableA a 
INNER JOIN TableB b ON b.Columns1 = a.Column1
    AND ISNUMERIC(a.Column1) = 1
WHERE 1=1
UNION
SELECT * 
FROM TableA a 
INNER JOIN TableC c ON c.Columns1 = a.Column1
    AND ISNUMERIC(a.Column1) = 0

关于sql-server - 仅当第一个表包含某些值时才连接两个表(如果不连接另一个表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349133/

相关文章:

.net - 如何在正确的语言环境中将 float 插入 SQL 表

c# - 在 SQL Server 上跟踪 View

SQL Server 自定义小数值舍入

sql-server - 批量插入操作系统错误代码 32

SQL从XML字段获取数据

mysql - 将变量声明为子查询的查询结果

sql-server - Google Composer - 如何在环境中安装 Microsoft SQL Server ODBC 驱动程序

sql - 如何将分离的 Year(int)、Month(int) 和 Day(int) 列转换为 DateTime

sql - 我如何强制执行此约束?

sql - 优化聚合查询