【发布时间】:2010-08-03 22:21:26
【问题描述】:
对于某些条件,我需要返回 2 个值之一: 我的不同情况是: 当一列的右端有“子字符串”时,返回该列。 (即 LIKE '%substring') 否则返回其他列(来自其他表)
这行得通:
SELECT * From Table1 where col1 is not null and col1 like '%substring'
但是,这不起作用:
SELECT col5,
CASE Table1.Col1
WHEN NULL Then Table2.Col2
WHEN '%substring' THEN Table1.Col1
ELSE Table2.Col2
FROM Table1
JOIN Tablex ON Tablex.colID= Tabley.colID
JOIN Table1 ON Table1.colID = Tablex.colID
还有一堆更多的连接,用于使用 table1/table2 的外键相互关联的表... 结果总是从“else”部分返回。
我也试过了,还是不行:
SELECT col5,
CASE Table1.Col1
WHEN NULL Then Table2.Col2
WHEN '' THEN Table2.Col2
ELSE Table1.col1
FROM Table1
JOIN Tablex ON Tablex.colID= Tabley.colID
JOIN Table1 ON Table1.colID = Tablex.colID
【问题讨论】:
标签: sql sql-server tsql case