我在使用TOP解决SELECT CASE时遇到问题。
我应该提一下我对此很新吗?
我想从两个表中填写一列信息:
表1:第1列包含我想要使用的数据
表1:第2列是连接
表2:第1列包含我想要使用的数据
表2:第2列是连接
所以:
表1第1列包含字母(D M和T)和空格。
表2第1列包含单词('劳斯''转移''交付')
我尝试使用以下条件填充我的专栏:
对我来说,事情变得非常快,因为我想从B栏中获取的信息需要使用TOP。
关键词“' LIKE' ”附近的语法语法不正确。
到目前为止,这是我的代码。有什么建议吗?
SELECT (
CASE T1.C1
WHEN 'D' THEN 'D'
WHEN 'M' THEN 'M'
WHEN 'T' THEN 'T'
WHEN (
SELECT TOP 1 T2.C1
FROM T2
WHERE T1.C2=T2.C2
) LIKE 'ROLLS' THEN 'R'
ELSE ''
END) AS my_data
FROM T1
答案 0 :(得分:0)
像这样更改Case Statement
。您已将Input Expression
与searched CASE expression
SELECT ( CASE
WHEN T1.C1 = 'D' THEN 'D'
WHEN T1.C1 = 'M' THEN 'M'
WHEN T1.C1 = 'T' THEN 'T'
WHEN (SELECT TOP 1 T2.C1
FROM T2
WHERE T1.C2 = T2.C2) LIKE 'ROLLS' THEN 'R' -- (Add Order by Clause in Correlated Subquery)
ELSE ''
END ) AS my_data
FROM T1
答案 1 :(得分:0)
您的问题并不完全清楚,但我认为您可以简化此操作并完全删除子查询。
SELECT
CASE
WHEN LEFT(T1.C1 + T2.C1, 1) = 'R' THEN 'R'
ELSE T1.C1
END AS MyData
FROM T1