在表格中,我需要检索3列:
OrderNumber, ParentOrderNumber, ClientName
ParentOrderNumber将始终具有ClientName
但是一些OrderNumber不会有ClientName,
在这种情况下,我需要从ParentOrderNumber获取ClientName。
你能帮我解决一下SQL查询吗
附件是数据场景的图片。 这里没有可用于ETA-454-5687的客户端名称,因此我需要使用同一个表中的parentOrderNumber(TOR-096-2000)来获取它。
答案 0 :(得分:1)
使用COALESCE
这是CASE表达式的简写:
COALESCE(expression1, expression2, ..., expressionN)
是
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
WHEN (expression2 IS NOT NULL) THEN expression2
...
ELSE expressionN
END
因此你可以使用
SELECT ParentOrderNumber,
clientname,
COALESCE(OrderNumber, ParentOrderNumber) as OrderNumber
FROM MyTable
答案 1 :(得分:0)
select
ParentOrderNumber,
clientname,
case when OrderNumber is null or len(OrderNumber)=0 then clientname else OrderNumber end as OrderNumber
from yourtable
答案 2 :(得分:0)
使用正确加入:
请参考此问题,看看相同的问题:https://stackoverflow.com/a/39543010/6606630
答案 3 :(得分:0)
这可以通过案例陈述
来实现它执行基本的True False样式逻辑,然后允许执行操作。
Select
ClientName
, ParentOrderNumber
, CASE WHEN [OrderNumber] IS NULL THEN ParentOrderNumber ELSE OrderNumber END AS [OrderNumber]
FROM
tbl_Table
答案 4 :(得分:0)
我认为我们需要您表中的更多信息。 你有这样的事吗?
exec
然后你需要加入你的表
using (var context = new BloggingContext())
{
var blogs = context.Blogs.SqlQuery("dbo.GetBlogs").ToList();
}