- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
主要问题:我无法将两个 MySQL 语句重新创建到 MS Sql 中 - 因为例如 MS SQL 不会将像“1g”这样的值转换为整数值 1,尽管 MySQL 似乎与我创建的 MySql 语句一起使用。
我的情况:我有一个表中的数据列,其中包含数字 + 后缀字符值的组合。我有另一个关于允许的后缀值的信息表。我正在努力完成这些事情:
已经使用的号码(“不可用”)用波浪号“~”表示,那些“可用”的号码在各自的列中显示为数字
-上面的第 3 项和第 4 项在这里没有问题,但正是我需要第 1 项和第 2 项的原因
显式数据限制:
我尝试过的:
我有一个可以按我想要的方式工作的 MySQL 版本,但我需要将它转换为 MS Sql。当我尝试手动将 MySQL 语句转换为 MS Sql 时,出现无法转换为 int 错误(即,将“1g”转换为 int)。我有每个数据表的 MS SQL 实例,如下所示作为 MySQL 模式,但由于数据发生转换错误,我无法弄清楚如何将 MySQL 语句重新创建到 MS SQL 中。
重要的问题是 [primary_data].[No] 字段包含不同的长度后缀值(所以我不能只看最后一个结束字符。)
我在找什么:
我真正想要的是一种简单的方法,可以使用在另一个表中找到的值(即 [suffix_values].[allowedvalue)从表(即 [primary_data].[No])中以“类似”方式选择列]).或者,我想要一些关于如何将 MySQL View 和结果查询重新创建为有效的 MS Sql 语句的指示。
MySQL 良好结果示例 - 显示数字 20-99 的剪辑 (csv):
Ten's,0,1,2,3,4,5,6,7,8,9
20's,~,~,~,~,~,~,~,~,28,~
30's,~,~,~,33,34,~,~,~,~,39
40's,~,~,~,43,~,~,46,47,~,49
50's,50,51,~,~,~,~,~,~,58,59
60's,60,61,62,63,~,~,~,67,68,69
70's,~,71,~,~,~,~,76,~,78,79
80's,80,81,82,83,84,85,86,87,~,~
90's,90,91,92,~,~,95,~,97,98,99
示例数据:primary_data(模拟 csv 数据)
Chapter,No,Additional1,Additional2,Additional8
South,96,,Name 1,2014
South,75od,One Day,Name 2,2014
South,88ee,South,Name 3,2014
South,77g,South,Name 4,2014
South,32g,South,Name 5,2014
South,34od,One Day,Name 6,2014
South,51ot,Old Timers,Name 7,2014
South,35e,South,Name 8,2014
South,42g,South,Name 9,2014
注意上面的示例行,预期结果是包含“g”、“e”、“ee”的行将在其各自的数字桶中产生波浪号。所有其他数字将显示在各自的桶中。
示例数据:后缀值: (csv)
Id,Chapter,Suffix,IsEnabled
1,South,g,1
2,Sierra,s,1
3,Bay,b,1
4,Reno,r,1
5,Valley,v,1
6,One Day,od,0
7,1st Eval,e,1
8,2nd Eval,ee,1
9,Old Timers,ot,0
表的 MySql 架构:primary_data
CREATE TABLE `primary_data` (
`Chapter` varchar(50) NOT NULL,
`No` varchar(50) NOT NULL,
`Additional1` varchar(50) DEFAULT NULL,
`Additional2` varchar(50) DEFAULT NULL,
`Additional8` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表的 MySql 架构:suffix_values
CREATE TABLE `suffix_values` (
`Id` bigint(20) NOT NULL AUTO_INCREMENT,
`Chapter` varchar(50) DEFAULT '',
`allowed_suffix` char(5) NOT NULL DEFAULT '',
`IsEnabled` tinyint(1) DEFAULT '0',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
表的 MySql 架构:allowednumbers(值 1 到 999)
CREATE TABLE `allowednumbers` (
`Number` int(11) NOT NULL,
PRIMARY KEY (`Number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用于 View 的 MySql 架构:vnumbers(需要在 MS Sql 中重新创建)
SELECT `primary_data`.`Chapter` AS `Owner`,
`primary_data`.`Additional1` AS `Chapter`,
`primary_data`.`Additional8` AS `ThisYear`,
CAST(`primary_data`.`No` AS UNSIGNED) AS `scrubbed_number`
FROM `primary_data`
WHERE (
(`primary_data`.`Additional8` <> '')
AND `primary_data`.`Additional1` IN (
SELECT `suffix_values`.`Chapter`
FROM `suffix_values`
WHERE ((`suffix_values`.`isenabled` = 1)
AND (`suffix_values`.`allowed_suffix` NOT IN ('e' , 'ee'))
)
)
)
ORDER BY `primary_data`.`Additional1` , CAST(`primary_data`.`No` AS UNSIGNED)
MySql for result query statement(我在这篇文章的 where 子句中放置了常量值,还需要在 MS Sql 中重新创建)
Select Tens,
CASE col0
WHEN 0 Then '~'
ELSE col0
END '0',
CASE col1
WHEN 0 Then '~'
ELSE col1
END '1',
CASE col2
WHEN 0 Then '~'
ELSE col2
END '2',
CASE col3
WHEN 0 Then '~'
ELSE col3
END '3',
CASE col4
WHEN 0 Then '~'
ELSE col4
END '4',
CASE col5
WHEN 0 Then '~'
ELSE col5
END '5',
CASE col6
WHEN 0 Then '~'
ELSE col6
END '6',
CASE col7
WHEN 0 Then '~'
ELSE col7
END '7',
CASE col8
WHEN 0 Then '~'
ELSE col8
END '8',
CASE col9
WHEN 0 Then '~'
ELSE col9
END '9'
From (
Select Concat('',x.row,'0''s') as Tens,
sum(x.Col0) 'col0',
sum(x.Col1) 'col1',
sum(x.Col2) 'col2',
sum(x.Col3) 'col3',
sum(x.Col4) 'col4',
sum(x.Col5) 'col5',
sum(x.Col6) 'col6',
sum(x.Col7) 'col7',
sum(x.Col8) 'col8',
sum(x.Col9) 'col9'
From (
Select Left(cast(a.Number as char(3)),Length(cast(a.Number as char(3)))-1) 'Row',
CASE Right(cast(a.Number as char(3)),1)
WHEN '0' then a.number
Else 0
END 'Col0',
CASE Right(cast(a.Number as char(3)),1)
WHEN '1' then a.number
Else 0
END 'Col1',
CASE Right(cast(a.Number as char(3)),1)
WHEN '2' then a.number
Else 0
END 'Col2',
CASE Right(cast(a.Number as char(3)),1)
WHEN '3' then a.number
Else 0
END 'Col3',
CASE Right(cast(a.Number as char(3)),1)
WHEN '4' then a.number
Else 0
END 'Col4',
CASE Right(cast(a.Number as char(3)),1)
WHEN '5' then a.number
Else 0
END 'Col5',
CASE Right(cast(a.Number as char(3)),1)
WHEN '6' then a.number
Else 0
END 'Col6',
CASE Right(cast(a.Number as char(3)),1)
WHEN '7' then a.number
Else 0
END 'Col7',
CASE Right(cast(a.Number as char(3)),1)
WHEN '8' then a.number
Else 0
END 'Col8',
CASE Right(cast(a.Number as char(3)),1)
WHEN '9' then a.number
Else 0
END 'Col9'
From allowednumbers as a
Where (a.Number Not Between 1 and 25) and a.Number NOT IN (
Select scrubbed_number
From vnumbers as b
Where (b.Owner='South' and b.Chapter='South') and b.ThisYear= '2014')
Order by Cast(Left(cast(a.Number as char(3)), Length(cast(a.Number as char(3)))-1) as unsigned)
) as x
Group by x.Row
Order by Cast(x.Row as unsigned)
) as z
最佳答案
我之前的回答有问题...我发现有些数据行不符合我的预期...所以我用一个函数解决了这个问题:
CREATE FUNCTION dbo.getnumberonly
(
@p1 nvarchar(50)
)
RETURNS int
AS
BEGIN
Return
case (patindex('%[a-z]%',@p1))
when 0 then @p1
else
case (patindex('%[0-9]%',@p1))
when 1 then -- Numbers first
substring(@p1, patindex('%[0-9]%',@p1), len(@p1) - patindex('%[0-9]%',reverse(@p1)) + patindex('%[0-9]%',@p1))
else
dbo.getnumberonly(substring(@p1, patindex('%[0-9]%',@p1), len(@p1) - patindex('%[0-9]%',@p1)))
end
end
END
关于mysql - 如何使用选择值表从列值中动态选择后缀值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28034850/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!