隐式转换

在 SQL Server 中使用函数处理数据

Ana Voicu

Data Engineer

数据比较

请记住:比较两个值时,它们必须同类型。

否则:

  • SQL Server 会在类型间转换(隐式
  • 开发者手动转换数据(显式
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings;
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > 0.5; 

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > -2; 

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > GETDATE();

| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| ...     | ...        | ...           |
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > 'A';


| result                                         | 
|------------------------------------------------|
| Error converting data type varchar to numeric. |
在 SQL Server 中使用函数处理数据

可能的转换示例

SELECT 
    company
    bean_type,
    cocoa_percent
FROM ratings
WHERE cocoa_percent > '0.5';
| company | bean_type  | cocoa_percent |
|---------|------------|---------------|
| Amedei  | Blend      | 0.7000        |
| Bonnat  | Trinitario | 0.7500        |
| ...     | ...        | ...           |
在 SQL Server 中使用函数处理数据

数据类型优先级

数据类型优先级

在 SQL Server 中使用函数处理数据

数据类型优先级

在 SQL Server 中使用函数处理数据

数据类型间的隐式转换

隐式转换表

在 SQL Server 中使用函数处理数据

隐式转换的性能影响

  • 隐式转换会对查询的每一行执行
  • 通过良好的模式设计可避免隐式转换
在 SQL Server 中使用函数处理数据

¡Vamos a practicar!

在 SQL Server 中使用函数处理数据

Preparing Video For Download...