sql - 在 SQL Server 中查询字段 = N'0'
问题描述
我有一些不熟悉的问题,也许大家可以解释一下,请
Select *
From TableA
Where field1 = N'FAIL' And field2 = N'0'
N'FAIL'
或N'0'
=> 这是什么意思?我们可以使用该条件来获得更有效的查询吗?
这个查询和这个一样吗?
select *
from TableA
where field1 = 'FAIL' and field2 = '0'
希望能得到一些答案,谢谢
解决方案
N'FAIL'
是字面量NVARCHAR
。'FAIL'
是字面量VARCHAR
。
这是两种不同的数据类型:两者都是可变长度字符串(具有最大长度),但NVARCHAR
同时存储 Unicode 和非 Unicode 字符,同时VARCHAR
仅支持非 Unicode 字符。NVARCHAR
如果您有 Unicode 字符(Unicode 中每个字符 2 个字节,而非 Unicode 中每个字符 1 个字节),存储大小会更大。
在您的语句中应该使用哪一个取决于与该值进行比较的列的实际数据类型。如果列是NVARCHAR
,则使用NVACHAR
文字,否则使用VARCHAR
; 对文字字符串使用正确的数据类型总是更有效,也更安全。
推荐阅读
- javascript - 悬停图像时使用自定义光标并指向链接
- node.js - 我该如何解决这个问题 heroku web
- perl - 仅当以 Perl 中的给定字符串开头时,才将一行从一个文件写入另一个文件
- python - 按日期对 Django Rest API 端点响应进行排序
- oracle - 如何使用 cron 表达式在 oracle 中安排数据库作业?
- java - 如何让 @UseAdviceWith 在 Camel 3 中工作
- c# - 在请求对象中获取 X-Original-Host
- mysql - 如何在有条件的情况下执行 LEFT JOIN
- html - 在我的 wordpress 网站上用` 探测
- laravel - Laravel 背包 crud 用于更新和列出关系