将查询从MSSQL转换为PostgreSQL
如果用户名只有数字,此查询将更新一列将查询从MSSQL转换为PostgreSQL,sql,postgresql,sql-update,case,Sql,Postgresql,Sql Update,Case,如果用户名只有数字,此查询将更新一列 UPDATE [dbo].[MyTable] SET [MyColumn] = CAST(CASE WHEN UserName LIKE '%[^0-9]%' THEN 0 ELSE 1 END AS BIT) 我需要将其重新传输到postgreSql。一定是这样的 UPDATE "MySheme"."MyTable&qu
UPDATE [dbo].[MyTable]
SET [MyColumn] = CAST(CASE
WHEN UserName LIKE '%[^0-9]%'
THEN 0
ELSE 1
END AS BIT)
我需要将其重新传输到postgreSql。一定是这样的
UPDATE "MySheme"."MyTable"
SET "MyColumn" = CAST(CASE
WHEN "UserName" LIKE '%[^0-9]%'
THEN 0
ELSE 1
END AS BIT)
考虑:
update mytable
set mycolumn = (username !~ '\d')::int::bit
如果用户名
不包含任何数字,则生成位
值1
,否则0
请注意,Postgres支持boolean
数据类型,这在这里可能更有意义。这也将简化查询:
update mytable
set mycolumn = (username !~ '\d')
注意,我没有引用标识符。带引号的标识符通常不会增加任何值,并且会使查询变得不必要的冗长-我建议您在设置中避免使用它们。与MSSQL不同,PostgreSQL有一个布尔数据类型,您通常会使用它来代替bit。然后,您可以直接将其指定为true或false,而无需进行任何转换。如果你真的想用一点然后像这样施展<代码>然后0::位其他1::位