在sql查询中,如何将string类型的变量转换为varchar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql查询中,如何将string类型的变量转换为varchar相关的知识,希望对你有一定的参考价值。

UPDATE [mydb_sde].[dbo].[Layer]
SET [LayerVisible] = '0'
WHERE [LayerUserType] = '2'and [LayerName] = 'Route'and Convert(Varchar,MapServerName, 50) = 'SanFrancisco'
消息 402,级别 16,状态 1,第 1 行
数据类型 text 和 varchar 在 equal to 运算符中不兼容。

参考技术A UPDATE [mydb_sde].[dbo].[Layer]
SET [LayerVisible] = '0'
WHERE [LayerUserType] = '2'and [LayerName] = 'Route'and [MapServerName]= 'SanFrancisco'本回答被提问者采纳

如何即时将 lambda 表达式转换为 Sql 查询?

【中文标题】如何即时将 lambda 表达式转换为 Sql 查询?【英文标题】:How to transform lambda expressions to Sql queries on the fly? 【发布时间】:2013-05-27 08:57:39 【问题描述】:

我有一个表达式类型变量。它有一个表达式来过滤数据。 例如,表达式让 SQL 获取 LOCATION 为 'KOR' 的数据。

it => (it.LOCATION == "KOR")

此表达式将是 SQL 语句中的 WHERE 子句。 将 lambda 表达式转换为 Sql 查询看起来很复杂,因为有许多不同的表达式。

如果不从头开始,我怎样才能达到这个目的? 有什么好的图书馆吗?

已添加....

我可以通过调用 ToString() 方法得到一个 lambda 表达式的字符串。

"it => (((it.LOCATION == \"KOR\") OrElse (it.LOCATION == \"FRA\")) AndAlso (it.Value > 30000))"

【问题讨论】:

SQL 查询的预期输出是什么? 预期输出是 WHERE LOCATION IN ('KOR', 'FRA') AND Value > 30000。 如果您正在寻找一个通用的解决方案,您可能会考虑构建一个导致嵌套谓词理论的 sql 子句树的复杂性。 NHibernate 或 Entity Framework 可以以不同的方式帮助您。 我将限制词汇表,而不是支持所有表达式,因此实现它不会太困难。感谢您的意见。 都是关于嵌套子句的。翻译一个 WHERE 并不难,但是你将如何处理 SELECT..FROM (SELECT..FROM..WHERE) INNER JOIN (SELECT..FROM) WHERE...AND...OR?谓词具有不同的优先级和不同的求解顺序。让我们知道:) 【参考方案1】:

我不完全确定您的要求,但您是否尝试过使用 Linq to Sql Dynamic Linq

【讨论】:

以上是关于在sql查询中,如何将string类型的变量转换为varchar的主要内容,如果未能解决你的问题,请参考以下文章

如何即时将 lambda 表达式转换为 Sql 查询?

sql 2008 中,将int数据类型如何转换为string?

VB中如何将object类型转换为其他类型?

如何将 JAVa中的 String类变量嵌入SQL查询语句中...?

c++中如何把string类型转化为float类型

String 转换成精确到秒的 sql.Date类型问题