zoukankan      html  css  js  c++  java
  • SQL技术内幕-7 varchar类型的数字和 int 类型的数字的比较+cast的适用

    DECLARE @x VARCHAR(10);
    DECLARE @y INT;
    DECLARE @z VARCHAR(10);
    
    SET @x =  '1000';
    SET @y =  '2000';
    SET @z = '+3000';
    

      --第一种

    SELECT
      CASE WHEN @x < @y THEN 'TRUE' ELSE 'FALSE' END AS [x<y?],
      CASE WHEN @y < @z THEN 'TRUE' ELSE 'FALSE' END AS [y<z?], 
      CASE WHEN @x < @z THEN 'TRUE' ELSE 'FALSE' END AS [x<z?]
    

      结果为

    x<y? y<z? x<z?
    TRUE TRUE FALSE

    第二种

    SELECT
      CASE WHEN @x < @y THEN 'TRUE' ELSE 'FALSE' END AS [CAST(x)<y?],
      CASE WHEN @y < @z THEN 'TRUE' ELSE 'FALSE' END AS [y<CAST(z)?], 
      CASE WHEN @x < @z THEN 'TRUE' ELSE 'FALSE' END AS [x<z?],
      CASE WHEN CAST(@x AS INT) < CAST(@z AS INT)
           THEN 'TRUE' ELSE 'FALSE' END AS [CAST(x)<CAST(z)?]
    

      结果为

    CAST(x)<y? y<CAST(z)? x<z? CAST(x)<CAST(z)?
    TRUE TRUE FALSE TRUE

  • 相关阅读:
    力扣背包型动态规划
    并查集
    位运算题目
    随机采样题目
    单调栈题目
    前缀和题目
    贪心题目
    堆排序
    python装饰器
    状态机题目
  • 原文地址:https://www.cnblogs.com/alphafly/p/4307258.html
Copyright © 2011-2022 走看看