我在想,如果这样的事情是可能的:SQL内联有条件在选择
SELECT name or alt_name FROM users Where userid=somenum
我也试过这样:
SELECT name IF NOT NULL ELSE alt_name ...
如果任何人有任何了解我会很感激的。
我在想,如果这样的事情是可能的:SQL内联有条件在选择
SELECT name or alt_name FROM users Where userid=somenum
我也试过这样:
SELECT name IF NOT NULL ELSE alt_name ...
如果任何人有任何了解我会很感激的。
如果您想更换空然后
select coalesce(name,alt_name)....
它将返回第一个非空值
不是最有效的答案,但对于这一点:
SELECT name FROM users WHERE userid=somenum AND name IS NOT NULL
UNION
SELECT altname FROM users WHERE userid=somenum AND name IS NULL
我认为这会产生你所追求的。
如果你使用的是支持他们,那么最简单的方式之一数据库使用用户定义的函数,你再有
SELECT udfPreferredName() FROM users
其中udfPreferredName()
将封装名称和alternative_name领域之间进行选择所需的逻辑。
使用函数的一个优点是,您可以抽象出选择逻辑并将其应用于多个SQL语句中的任何需要的地方。使用案例进行内联逻辑很好,但通常会在整个系统中更难以维护。在大多数RDBMS中的函数调用的额外开销不会显著,除非你正在处理非常大的表
SELECT CASE 当userid和= somenum然后命名 ELSE alt_name END 来自用户的
你的意思是什么喜欢这个?我假设TSQL
SELECT CASE WHEN [name] IS NOT NULL THEN [name] ELSE [alt_name] END AS [UserName]
FROM [Users] WHERE [UserId] = somenum
这个怎么样?
SELECT IsNull(name, alt_name) FROM users Where userid=somenum
它与Coalesce函数类似,但它只需要两个参数并且更容易拼写。
感谢,由于某种原因,当我尝试提出问题时,工作时间的网络在这里,所以我不得不在我的iPhone上输入它...... – 2009-09-23 15:29:18
也就是说,网络导致页面超时...大声笑 – 2009-09-23 15:29:48