SQL Server中能否使用“?”占位符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server中能否使用“?”占位符相关的知识,希望对你有一定的参考价值。
在mysql中可以:String sql="select * from tUser where id=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1,userID);//来填充"?"占位符
那如果数据库换成SQL Server能否用同样的方法?
我见过的有 :% ,_ ,^等 参考技术B T-SQL的参数:@userID
不过用法不同。 参考技术C 和上面那位仁兄一样不知道sql server有没有?
你所说的只是起一个标记的作用,这个和jsp里面的query对象的操作方法是一样的。
其实最简单的例子就像asp里的Parameters对象也是一样的道理。本回答被提问者采纳
SQL Server:如果左连接没有结果,则返回占位符/文本[重复]
【中文标题】SQL Server:如果左连接没有结果,则返回占位符/文本[重复]【英文标题】:SQL Server: return placeholder / text if Left Join has no result [duplicate] 【发布时间】:2014-10-10 14:38:06 【问题描述】:我在自引用表上使用左连接来查看项目是否具有 parentID,然后获取父项的相应 itemName。 parentID 可以是整数或 NULL。
我的查询按预期工作。 我只是想知道是否有一种方法可以返回占位符/文本(例如“---”),否则它只会为查询的这个特定部分返回任何内容。也许通过使用 Case 语句?
有问题的部分是E.itemName
和D.itemName
,因为两者都只有在D.parentID
和D.parentID
时才可用。 A.parentID
不为 NULL。
我的程序(缩短):
SELECT A.itemName,
B.lastUpdate,
B.modTime,
B.modBy,
E.itemName AS levelMain,
D.itemName AS levelSub
FROM MOC_Links A
LEFT JOIN MOC_Log B
ON B.itemID = A.itemID
LEFT JOIN MOC_Links D
ON D.itemID = A.parentID
LEFT JOIN MOC_Links E
ON E.itemID = D.parentID
WHERE A.itemName LIKE '%'+@searchTerm+'%'
ORDER BY itemName, levelMain
FOR XML PATH('results'), ELEMENTS, TYPE, ROOT('ranks')
【问题讨论】:
【参考方案1】:我想你在找coalesce()
:
coalesce(E.itemName, '---') as levelMain
coalesce(D.itemName, '---') as levelSub
【讨论】:
完美,就是这样 - 非常感谢,戈登!我会尽快接受。 :)【参考方案2】:您可以使用 Isnull,例如ISNULL(E.itemName, '----')
【讨论】:
也谢谢你。以上是关于SQL Server中能否使用“?”占位符的主要内容,如果未能解决你的问题,请参考以下文章